Heim  >  Artikel  >  Java  >  Detaillierte Einführung in die Java-UDP-Kommunikation

Detaillierte Einführung in die Java-UDP-Kommunikation

王林
王林nach vorne
2019-11-26 14:32:513106Durchsuche

Detaillierte Einführung in die Java-UDP-Kommunikation

Einführung:

UDP ist das Benutzer-Datagramm-Protokoll, um UDP in Java zu manipulieren, verwenden Sie die Klassen java.net und DatagramSocket im Paket DatagramPacket Das JDK kann Benutzerdatennachrichten einfach steuern. Die Klasse

DatagramPacket füllt Datenbytes in ein UDP-Paket, das als Datagramm bezeichnet wird.

DatagramSocket wird zum Versenden dieses Pakets verwendet. Wenn Sie Daten akzeptieren, können Sie ein DatagramPack-Objekt vom DatagramSocket akzeptieren und dann den Inhalt der Daten aus dem Paket lesen.

UDP ist eine verbindungslose Simplex-Kommunikation, die schnell ist.

Empfohlene Online-Video-Tutorials: Java-Online-Video

1. DatagramSocket-Klasse

Konstruktor:

DatagramSocket()

Erstellen Sie eine Instanz, die normalerweise für die Client-Programmierung verwendet wird. Sie verfügt über keinen bestimmten Überwachungsport und verwendet nur einen temporären.

DatagramSocket(int port)

Erstellen Sie eine Instanz und überwachen Sie die Pakete des Port-Ports.

DatagramSocket(int port, InetAddress laddr)

Dies ist ein sehr nützlicher Builder. Wenn eine Maschine mehr als eine IP-Adresse hat, empfängt die von ihr erstellte Instanz nur Nachrichten von LocalAddr. Der Port und die Adresse werden im

DatagramSocket(SocketAddress bindaddr)

bindaddr-Objekt angegeben.

Häufig verwendete Funktionen:

receive(DatagramPacket p)

Datenpakete in p empfangen. Die Empfangsmethode blockiert. Wenn kein Datagrammpaket empfangen wird, wird es blockiert.

send(DatagramPacket p)

Nachricht p an das Ziel senden.

setSoTimeout(int timeout)

Stellen Sie das Timeout in Millisekunden ein.

close()

DatagramSocket schließen. Wenn die Anwendung beendet wird, gibt sie normalerweise aktiv Ressourcen frei und schließt den Socket. Aufgrund eines abnormalen Beendens werden die Ressourcen jedoch möglicherweise nicht recycelt. Daher sollten Sie diese Methode aktiv verwenden, um den Socket zu schließen, wenn das Programm abgeschlossen ist, oder den Socket nach dem Abfangen einer Ausnahme schließen.

2. DatagramPacket-Klasse

Die DatagramPacket-Klasse wird zum Verarbeiten von Nachrichten, zum Packen von Byte-Arrays, Zieladressen, Zielports und anderen Daten verwendet Nachricht oder zerlegen Sie die Nachricht in ein Byte-Array.
Konstruktor:

DatagramPacket(byte[] buf, int length, InetAddress addr, int port)

Nehmen Sie die längenlangen Daten, beginnend mit dem Offset, aus dem Buf-Byte-Array, um ein Datenobjekt zu erstellen. Die Zieladresse ist addr und der Zielport ist port.

DatagramPacket(byte buf[], int offset, int length, SocketAddress address)

Ruft die längenlangen Daten ab dem Offset aus dem Buf-Byte-Array ab, um ein Datenobjekt zu erstellen.

Allgemeine Funktionen:

getData() byte[]

Abgerufen von die Instanz Die Byte-Array-Kodierung in der Nachricht.

setData(byte[] buf, int offset, int length)

Legen Sie den Dateninhalt im Datagrammpaket fest

3. Kommunikationsprozess der UDP-Kommunikation

UDP-Absender:

1. Richten Sie den Updsocket-Dienst ein.

2. Stellen Sie Daten bereit und kapseln Sie die Daten in Datenpakete.

3. Senden Sie das Datenpaket über die Sendefunktion des Socket-Dienstes.

4. Ressourcen schließen.

UDP-Empfänger:

1 Definieren Sie den udpsocket-Dienst, der normalerweise auf einem Port lauscht.

2. Definieren Sie ein Datenpaket zum Speichern der empfangenen Byte-Daten.

3. Speichern Sie die empfangenen Daten über die Empfangsmethode des Socket-Dienstes im definierten Datenpaket.

4. Durch die einzigartigen Funktionen des Datenpaketobjekts werden diese verschiedenen Daten herausgenommen und auf der Konsole gedruckt.

5. Ressourcen schließen.

Für weitere verwandte Fragen besuchen Sie bitte das Java-Artikel-Tutorial: Erste Schritte mit Java

Das obige ist der detaillierte Inhalt vonDetaillierte Einführung in die Java-UDP-Kommunikation. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

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