Heim >Java >javaLernprogramm >So implementieren Sie die UDP-Programmierung für die Netzwerkkommunikation basierend auf dem UDP-Protokoll in Java

So implementieren Sie die UDP-Programmierung für die Netzwerkkommunikation basierend auf dem UDP-Protokoll in Java

王林
王林nach vorne
2023-05-17 13:13:471260Durchsuche

UDP-Programmierkommunikation

Grundlegende Einführung

  • Die Klassen DatagramSocket und DatagramPacket [Datenpaket/Datagramm] implementieren Netzwerkprogramme basierend auf dem UDP-Protokoll.

  • UDP-Datagramme werden über den Datagram-Socket DatagramSocket gesendet und empfangen. Das System garantiert nicht, dass das UDP-Datagramm sicher an das Ziel übermittelt wird, und es ist auch nicht sicher, wann es ankommt.

  • Das DatagramPacket-Objekt kapselt ein UDP-Datagramm. Das Datagramm enthält die IP-Adresse und Portnummer des Absenders sowie die IP-Adresse und Portnummer des Empfängers.

  • Jedes Datagramm im UDP-Protokoll enthält vollständige Adressinformationen, sodass keine Verbindung zwischen Sender und Empfänger hergestellt werden muss.

Grundlegender Prozess

  • Die beiden Kernklassen/-objekte DatagramSocket-Domäne DatagramPacket

  • Legen Sie den Sender und den Empfänger fest.

  • Erstellen Sie ein Datenpaket.

  • Rufen Sie die Sende- und Empfangsmethoden von DatagramSocket auf.

  • Schließen Sie DatagramSocket.

Schematische Darstellung des UDP-Netzwerkprogrammierungsprinzips

So implementieren Sie die UDP-Programmierung für die Netzwerkkommunikation basierend auf dem UDP-Protokoll in Java

UDP-Beschreibung:

  • Es gibt keinen klaren Server und Client, der sich zum Sender und Empfänger von Daten entwickelt hat.

  • Das Empfangen von Daten und das Generieren von Daten werden über das DatagramSocket-Objekt abgeschlossen.

  • Kapseln Sie Daten in ein DatagramPacket-Objekt/-Paket.

  • Beim Empfang des DatagramPacket-Objekts muss es entpackt und die Daten entnommen werden.

  • DatagramSocket kann angeben, auf welchem ​​Port Daten empfangen werden sollen.

package com.study.srv.demo18;
import java.io.IOException;
import java.net.*;
/**
 * @version 1.0
 * UDP发送端
 */
public class Demo11 {
    public static void main(String[] args) throws IOException {
        //1.创建DatagramSocket对象,准备发送和接收数据,在9998端口接收
        DatagramSocket datagramSocket = new DatagramSocket(9998);
        //2.将需要发送的数据,封装到DatagramPacket对象
        String s="发送的数据";
        byte[] buf=s.getBytes();
        InetAddress ip = InetAddress.getByName("192.168.0.18");
        //说明:封装的DatagramPacket对象
        //buf 内容字节数组
        //buf.length 数据长度
        //ip 主机(ip)
        //9999 端口
        DatagramPacket packet = new DatagramPacket(buf, buf.length, ip, 9999);
        //发送数据
        datagramSocket.send(packet);
        //关闭资源
//        datagramSocket.close();
        System.out.println("发送完毕");
        //发送端变为接收端接收数据
        byte[] bytes = new byte[1024];
        DatagramPacket datagramPacket = new DatagramPacket(bytes, bytes.length);
        datagramSocket.receive(datagramPacket);
        int length = datagramPacket.getLength();
        byte[] data = datagramPacket.getData();
        String string = new String(data, 0, length);
        System.out.println(string);
        datagramSocket.close();
        System.out.println("接受结束");
    }
}
rrree

Das obige ist der detaillierte Inhalt vonSo implementieren Sie die UDP-Programmierung für die Netzwerkkommunikation basierend auf dem UDP-Protokoll in Java. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:yisu.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen