UDP --- User Datagram Protocol ist ein einfaches Datagramm-orientierter Transportschichtprotokoll. UDP bietet keine Zuverlässigkeit. Es sendet nur Datagramme, die von Anwendungen an die IP -Ebene gesendet werden, aber es garantiert weder, dass sie das Ziel erreichen können, noch garantiert es die Reihenfolge, in der Datenpakete eintreffen. Da UDP vor der Übertragung des Datagramms keine Verbindung zwischen dem Client und dem Server herstellen muss und es keinen Mechanismus wie eine Zeitüberschreitung gibt, ist die Übertragungsgeschwindigkeit sehr schnell.
Implementierung von UDP in Java:
* UDP:
* Kunde:
* 1. Erstellen Sie Socket-Objekt für UDP-Kommunikation-Datagramsocket (zum Senden und Empfangen von UDP-Daten) --- Datagramm-Socket
* 2. Daten vorbereiten, Kapselungspaket --- Datagrampacket (Datenpaket)
* 3. Senden Sie Daten über die Sendenmethode
* 4. Schließen Sie das Socket-Objekt-Socket-Objekt
* Serverseite: Daten empfangen
* 1. Erstellen Sie ein Socket -Socket -Objekt und binden Sie die Portnummer
* 2. Erstellen Sie ein Paketobjekt, erstellen Sie leeres Array und bereiten Sie sich darauf vor, Daten zu empfangen
* 3. Daten empfangen
* 4. Schließen Sie die Ressource
* UDP -Broadcast -Methode:
* Alle Hosts im selben Netzwerksegment können es empfangen, vorausgesetzt, der Port muss zuhören müssen
* Der Client sendet eine Sendung und den Server, mit dem die Portüberwachung Nachrichten empfangen und drucken kann
* Implementierung von Broadcast: Sendung wird vom Client gesendet und vom Server empfangen
* String host = "255.255.255.255"; // Broadcast-Adressrepräsentationen Alle Hosts
* 10.0.122.255 ----
Code -Implementierung:
Client (senden):
Importieren Sie java.io.ioxception; import Java.net.datagrampacket; importieren java.net.datagramsocket; importieren java.net.inetaddress; java.net.sockeTexception; importieren Sie Java.net.NeunnownHostException; öffentliche Klasse us. Erstellen Sie ein Objekt // Erstellen Sie einen Datagramm -Socket und binden Sie es an einen beliebigen Port auf dem Localhost. Datagramsocket socket = new DatagramSocket (); // 2. Verpackung Byte [] arr = "Client: haha ...". GetBytes (); // Vier Parameter: Länge des Paketpakets des Paket -Host -Objekt -Portnummer Datagrampacket Packet = new DataGrampacket (arr, arr.length, inetaddress.getByName ("10.0.122.255"), 4000); // 3. Senden Sie Socket.Send (Paket); // 4. Schließen Sie den Ressourcen -Socket.CLOSE (); }}Serverseite (Empfängerseite):
import java.io.IOException;import java.net.DatagramPacket;import java.net.DatagramSocket;import java.net.SocketException;import java.util.Arrays;public class UDP_server { public static void main(String[] args) throws IOException { //1 DatagramSocket serverSocket = new Datagramsocket (4000); // 2 byte [] arr = neues Byte [1024]; DataGrampacket packet = new DataGrampacket (arr, arr.length); // 3 Wenn das Programm ausgeführt wird, befindet sich die Empfangsmethode im Hörstatus -Serversocket.receive (Paket). // Die Daten aus dem Paket byte [] arr1 = paket.getData () abrufen; System.out.println (neuer String (arr1)); // 4 serversocket.close (); }}Ergebnis:
Die ersten drei Netzwerksegmente sind Server mit Portnummer 4000 auf allen Hosts mit Portnummer 10.0.122. Solange sie offen sind, können sie empfangen werden-
Kunde: haha. . . .
Das obige Broadcast -Formular basiert auf UDP in Java (Beispielerklärung) der Inhalt, den ich mit Ihnen teile. Ich hoffe, Sie können Ihnen eine Referenz geben und ich hoffe, Sie können wulin.com mehr unterstützen.