Heim  >  Artikel  >  Backend-Entwicklung  >  Java-Socket-Programmierung (Teil 2)(1)

Java-Socket-Programmierung (Teil 2)(1)

黄舟
黄舟Original
2016-12-23 16:20:311817Durchsuche

Selbstauslösende Sockets (Datagram Sockets)
​ Da jede Verbindung über einen Stream-Socket eine gewisse Zeit in Anspruch nimmt, stellt die Netzwerk-API einen zweiten Socket-Typ bereit: Selbstadressierende Sockets (Datagramm-Socket). Der Unterschied besteht darin, dass mehrere Adressen über selbstadressierende IP-Informationspakete gesendet werden können -Adressierungsinformationen sind im selbstadressierenden Paket enthalten, und selbstadressierende Pakete sind im IP-Paket enthalten, wodurch die Länge der Adressierungsinformationen auf 60.000 Byte begrenzt ist. Abbildung 2 zeigt die Selbstadressierungsinformationen eines selbstadressierten Pakets, das sich in einem IP-Paket befindet.
Anders als TCP stellt sicher, dass Informationen das Informationsziel erreichen. Wenn das selbstadressierte Informationspaket das Ziel nicht erreicht, fordert UDP den Absender nicht dazu auf, das selbstadressierte Paket erneut zu senden Dies liegt daran, dass UDP in jedem selbstadressierten Paket Informationen zur Fehlererkennung enthält. Nachdem jedes selbstadressierte Paket das Ziel erreicht hat, führt UDP nur eine einfache Fehlerprüfung durch. Wenn die Erkennung fehlschlägt, verwirft UDP das selbstadressierte Paket Dies ist vergleichbar mit dem Versenden eines Briefes über die Post. Der Absender muss vor dem Versenden des Briefes keine Verbindung zum Empfänger herstellen 🎜> Die selbstadressierende Socket-Arbeit umfasst die folgenden drei Klassen: DatagramPacket, DatagramSocket und MulticastSocket. Das DatagramPacket-Objekt stellt die Adressinformationen des selbstadressierten Pakets dar, das DatagramSocket stellt den selbstadressierenden Socket des Client-Programms und des Dienstprogramms dar und das MulticastSocket stellt den selbstadressierenden Socket dar, der zur Multicast-Übertragung fähig ist im Java.net-Paket.
DatagramPacket-Klasse
Bevor Sie selbstadressierte Pakete verwenden, müssen Sie sich zunächst mit der DatagramPacket-Klasse vertraut machen. Adressinformationen und selbstadressierte Pakete werden gleichzeitig in das von dieser Klasse erstellte Objekt in Form von Byte-Arrays komprimiert
DatagramPacket hat mehrere. Obwohl die Formen dieser Konstruktoren unterschiedlich sind, haben sie normalerweise zwei Parameter gemeinsam: Byte [] Puffer und Int-Länge. Der Pufferparameter enthält ein Byte-Array, das selbstadressierte Paketinformationen enthält stellt die Länge des Byte-Arrays dar.
Der einfachste Konstruktor ist DatagramPacket(byte [] buffer, int length). Dieser Konstruktor bestimmt das selbstadressierte Datenpaket-Array und die Länge des Arrays, verfügt jedoch über keine Adress- und Portinformationen der selbstadressierten Daten Diese Informationen können später durch Aufrufen der Methoden setAddress(InetAddress addr) und setPort(int port) hinzugefügt werden.
byte [] buffer = neues Byte [100];
DatagramPacket dgp = neues DatagramPacket (buffer, buffer.length);
InetAddress ia = InetAddress.getByName ("www.disney.com");
dgp.setAddress (ia);
dgp.setPort (6000); // Datagrammpaket an Port 6000 senden.

Das Obige ist der Inhalt von Java Socket Programming (Teil 2) (1) , Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website (www.php.cn)!



Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Vorheriger Artikel:XML-TerminologieNächster Artikel:XML-Terminologie