Es ist sehr praktisch und leistungsstark, Netzwerksoftware mit Java zu entwickeln. Diese Leistungsfähigkeit beruht auf dem einzigartigen Satz leistungsstarker APIs für Netzwerke. Diese APIs sind eine Reihe von Klassen und Schnittstellen, die sich alle im Paket java.net befinden javax.net. In diesem Artikel stellen wir das Konzept von Socket (Socket) vor und veranschaulichen anhand von Beispielen, wie die Netzwerk-API zum Bearbeiten von Sockets verwendet wird. Nach Abschluss dieses Artikels können Sie Low-End-Netzwerkkommunikationssoftware schreiben.
Was ist eine Steckdose?
Die Netzwerk-API wird normalerweise für Java-Programme verwendet, um mit anderen Programmen zu kommunizieren, die auf TCP/IP-Netzwerken basieren. Die Netzwerk-API ist für die Kommunikation auf Socket angewiesen. Socket kann als Endpunkt in der Kommunikationsverbindung zwischen zwei Programmen betrachtet werden. Ein Programm schreibt eine Information in den Socket, und der Socket sendet die Informationen an einen anderen Socket, sodass die Informationen an andere Programme übertragen werden können. Wie in Abbildung 1 gezeigt
Lassen Sie uns Abbildung 1 analysieren. Programm A auf Host A schreibt eine Information in den Socket. Auf den Inhalt des Sockets greift die Netzwerkverwaltungssoftware von Host A zu und diese Informationen werden über das Netzwerk von Host A weitergeleitet Die Karte wird an Host B gesendet. Nachdem die Netzwerkschnittstellenkarte von Host B diese Informationen erhalten hat, sendet sie sie an die Netzwerkverwaltungssoftware von Host B. Die Netzwerkverwaltungssoftware speichert diese Informationen im Socket von Host B, und dann kann Programm B sie speichern die Steckdose. Lesen Sie diese Nachricht.
Angenommen, in Abbildung 1 wird dem Netzwerk ein dritter Host, Host C, hinzugefügt. Woher weiß dann Host A, dass die Informationen korrekt an Host B und nicht an Host C übertragen werden? Jedem Host in einem TCP/IP-basierten Netzwerk wird eine eindeutige IP-Adresse zugewiesen. Die IP-Adresse ist eine vorzeichenlose 32-Bit-Ganzzahl, da sie normalerweise durch Dezimalpunkte getrennt wird, z. B. 198.163.227.6 , da alle angezeigten IP-Adressen aus vier Teilen bestehen, wobei jeder Teil im Bereich von 0 bis 255 liegt und eine 8-Bit-Adresse darstellt.
Es ist erwähnenswert, dass IP-Adressen alle 32-Bit-Adressen sind, was im IP-Protokoll Version 4 (als Ipv4 bezeichnet) festgelegt ist. Da IPv4-Adressen derzeit fast erschöpft sind, ersetzen IPv6-Adressen nach und nach Ipv4-Adressen IPv6-Adressen sind 128-Bit-Ganzzahlen ohne Vorzeichen.
Angenommen, das zweite Programm wird zu Host B des Netzwerks in Abbildung 1 hinzugefügt. Wie können die von Host A übertragenen Informationen korrekt an Programm B und nicht an das neu hinzugefügte Programm weitergeleitet werden? Dies liegt daran, dass jedem Programm, das auf der TCP/IP-Netzwerkkommunikation basiert, ein eindeutiger Port und eine eindeutige Portnummer zugewiesen werden. Der Port ist ein Informationspuffer, der zum Speichern der Eingabe-/Ausgabeinformationen im Socket verwendet wird. Die Portnummer ist eine 16-Bit-Ganzzahl ohne Vorzeichen. Im Bereich von 0 bis 65535 können die einzelnen Programme auf dem Host unterschieden werden (die Portnummer entspricht einer Zimmernummer in einem Haus). Die Portnummer von pop3 ist beispielsweise 110 Sockets werden in IP-Adressen, Ports und Portnummern zusammengefasst, sodass die einzelnen Sockets insgesamt unterschieden werden können. Lassen Sie uns über zwei Arten von Sockets sprechen: Stream-Sockets und selbstadressierte Daten.
Stream Socket
Beim Senden und Empfangen von Informationen zwischen zwei Netzwerkanwendungen muss eine zuverlässige Verbindung hergestellt werden, um sicherzustellen, dass die Informationen tatsächlich korrekt sind Das IP-Paket kann im Netzwerk verloren gehen oder es können Fehler bei der Übertragung auftreten. In beiden Fällen kontaktiert der TCP als Empfänger den TCP des Absenders, um das IP-Paket erneut zu senden. Dies wird als Herstellen einer zuverlässigen Verbindung zwischen zwei Stream-Sockets bezeichnet.
Das Obige ist der Inhalt von Java Socket Programming (Teil 1) (1). Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website (www.php.cn)!