Normalerweise wird ein Server auf einem bestimmten Computer ausgeführt und verfügt über einen Socket, der an eine bestimmte Portnummer gebunden ist. Der Server wartet nur und hört auf den Socket, damit ein Client eine Verbindungsanforderung stellt.
Auf der Client-Seite: Der Client kennt den Hostnamen des Computers, auf dem der Server ausgeführt wird, und die Portnummer, auf der der Server lauscht. Um eine Verbindungsanforderung zu stellen, versucht der Client, mit dem Server auf dem Computer und Port des Servers zu Rendezvous., Der Client muss sich auch mit dem Server identifizieren, damit er an eine lokale Portnummer bindet, die er während dieser Verbindung verwendet. Dies wird normalerweise vom system zugewiesen.
Wenn alles gut geht, akzeptiert der server die Verbindung. Nach der Annahme erhält der Server einen neuen Socket, der an denselben lokalen Port gebunden ist, und sein Remote-Endpunkt ist auf die Adresse und den Port des Clients festgelegt., Es benötigt einen neuen Socket, damit er weiterhin den ursprünglichen Socket für Verbindungsanforderungen abhören kann, während er sich an die Anforderungen des verbundenen Clients richtet.
Wenn die Verbindung akzeptiert wird, wird ein Socket erfolgreich erstellt und der Client kann den Socket zur Kommunikation mit dem Server verwenden.
Der Client und der Server können nun durch Schreiben oder Lesen von ihren Sockets kommunizieren.,
Ein Socket ist ein Endpunkt einer bidirektionalen Kommunikationsverbindung zwischen zwei im Netzwerk ausgeführten Programmen. Ein Socket ist an eine Portnummer gebunden, damit die TCP-Schicht die Anwendung identifizieren kann, an die Daten gesendet werden sollen.
Ein Endpunkt ist eine Kombination aus einer IP-Adresse und einer Portnummer. Jede TCP-Verbindung kann durch ihre beiden Endpunkte eindeutig identifiziert werden. Auf diese Weise können Sie mehrere Verbindungen zwischen Ihrem Host und dem Server herstellen.,
Das Paket java.net
in der Java-Plattform stellt eine Klasse, Socket
, bereit, die eine Seite einer bidirektionalen Verbindung zwischen Ihrem Java-Programm und einem anderen Programm im Netzwerk implementiert. DieSocket
– Klasse befindet sich auf einer plattformabhängigen Implementierung und verbirgt die Details eines bestimmten Systems vor Ihrem Java-Programm. Durch die Verwendung der java.net.Socket
– Klasse anstelle von nativem Code können Ihre Java-Programme plattformunabhängig über das Netzwerk kommunizieren.,
Zusätzlich enthält java.net
die ServerSocket
– Klasse, die einen Socket implementiert, mit dem Server Verbindungen zu Clients abhören und akzeptieren können. Diese Lektion zeigt Ihnen, wie Sie die Klassen Socket
und ServerSocket
verwenden.
Wenn Sie versuchen, eine Verbindung zum Web herzustellen ,sind dieURL
– Klasse und verwandte Klassen (URLConnection
,URLEncoder
) wahrscheinlich geeigneter als die Socket-Klassen., Tatsächlich sind URLs eine relativ hochrangige Verbindung zum Web und verwenden Sockets als Teil der zugrunde liegenden Implementierung. Informationen zum Herstellen einer Verbindung zum Web über URLs finden Sie unter Arbeiten mit URLs.