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.
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
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("接受结束"); } }
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!