Die Netzwerkprogrammierung

Die Netzwerkprogrammierung
Der Begriff Netzwerkprogrammierung bezieht sich auf das Schreiben von Programmen, die über mehrere Geräte (Computer) hinweg ausgeführt werden, wobei die Geräte über ein Netzwerk miteinander verbunden sind.

Das java.net-Paket der J2SE-APIs enthält eine Sammlung von Klassen und Schnittstellen, die die Low-Level-Kommunikationsdetails bereitstellen, so dass Sie Programme schreiben können, die sich auf die Lösung des Problems konzentrieren.
Das Paket java.net bietet Unterstützung für die beiden gängigen Netzwerkprotokolle –

Die TCP
TCP steht für Transmission Control Protocol, das eine zuverlässige Kommunikation zwischen zwei Anwendungen ermöglicht. TCP wird normalerweise über das Internetprotokoll verwendet, welches als IP bezeichnet wird.

Die UDP
UDP steht für User Datagram Protocol, ein verbindungsloses Protokoll, das die Übertragung von Datenpaketen zwischen Anwendungen ermöglicht.
Dieses Kapitel vermittelt ein gutes Verständnis für die folgenden Themen.

Socket-Programmierung
Sockets stellen den Kommunikationsmechanismus zwischen zwei Computern unter Verwendung von TCP bereit. Ein Client-Programm erstellt am Ende der Kommunikation einen Socket und versucht, diesen Socket mit einem Server zu verbinden.
Wenn die Verbindung hergestellt ist, erstellt der Server am Ende der Kommunikation ein Socket-Objekt. Der Client und der Server können jetzt kommunizieren, indem sie in den Socket schreiben und aus diesem lesen.
Die java.net.Socket-Klasse stellt einen Socket dar, und die java.net.ServerSocket-Klasse stellt einen Mechanismus bereit, mit dem das Serverprogramm auf Clients warten und Verbindungen mit ihnen herstellen kann.

Beim Herstellen einer TCP-Verbindung zwischen zwei Computern mit Sockets treten die folgenden Schritte auf.
Der Server instanziiert ein ServerSocket-Objekt, das angibt, an welcher Portnummer die Kommunikation stattfinden soll.
Der Server ruft die accept – Methode der ServerSocket-Klasse auf. Diese Methode wartet, bis sich ein Client am angegebenen Port mit dem Server verbindet.
Nachdem der Server gewartet hat, instanziiert ein Client ein Socket-Objekt und gibt den Servernamen und die Portnummer für die Verbindung an.
Der Konstruktor der Socket-Klasse versucht, den Client mit dem angegebenen Server und der Portnummer zu verbinden. Wenn die Kommunikation hergestellt wurde, verfügt der Client nun über ein Socket-Objekt, das mit dem Server kommunizieren kann.

Auf der Serverseite gibt die Methode accept () einen Verweis auf einen neuen Socket auf dem Server zurück, der mit dem Socket des Clients verbunden ist.
Nachdem die Verbindungen hergestellt wurden, kann die Kommunikation mithilfe von E / A-Datenströmen erfolgen. Jeder Sockel hat sowohl einen OutputStream als auch einen InputStream. Der OutputStream des Clients ist mit dem InputStream des Servers verbunden, und der InputStream des Clients ist mit dem OutputStream des Servers verbunden.