Erfahren Sie alles über Socket-Programmierung in Java



Die Java Socket-Programmierung wird für die Kommunikation zwischen Anwendungen verwendet, die auf verschiedenen JRE ausgeführt werden. Die Java Socket-Programmierung kann verbindungsorientiert oder verbindungslos sein.

Socket-Programmierung in wird für die Kommunikation zwischen den Anwendungen verwendet, die auf verschiedenen ausgeführt werden . Es kann entweder verbindungsorientiert oder verbindungslos sein. Insgesamt ist ein Socket eine Möglichkeit, eine Verbindung zwischen einem Client und einem Server herzustellen. In diesem Artikel werde ich Ihnen alles über die Socket-Programmierung erzählen.

Die folgenden Themen werden in diesem Artikel behandelt:





Was ist Socket-Programmierung in Java?

Socket-Programmierung ist eine Möglichkeit, zwei Knoten in einem Netzwerk zu verbinden, um miteinander zu kommunizieren. Ein Steckdose (Knoten) überwacht einen bestimmten Port an einer IP, während andere Steckdose greift nach dem anderen, um eine Verbindung herzustellen.

Client-Server-Kommunikation - Socket-Programmierung in Java - Edureka



Der Server bildet den Listener Steckdose während Der Client erreicht den Server. Socket und Server Socket werden für die verbindungsorientierte Socket-Programmierung verwendet.

Lassen Sie uns nun das Kernkonzept der Socket-Programmierung verstehen, d. H. Einen Socket.

Was ist ein Socket in Java?

ZU Steckdose im ist ein Endpunkt einer bidirektionalen Kommunikationsverbindung zwischen zwei im Netzwerk ausgeführten Programmen. EIN Steckdose 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. Das Paket in der Java-Plattform bietet eine Klasse:SteckdoseDadurch wird eine Seite einer bidirektionalen Verbindung zwischen Ihrem Java-Programm und einem anderen Programm im Netzwerk implementiert. Die Klasse befindet sich auf einer plattformabhängigen Implementierung und verbirgt die Details eines bestimmten Systems in Ihrem Java-Programm. Wenn Sie die Klasse verwenden, anstatt sich auf nativen Code zu verlassen, können Sie kann plattformunabhängig über das Netzwerk kommunizieren.

Nachdem Sie nun wissen, was Socket in Java ist, gehen wir weiter und verstehen, wie der Client mit dem Server kommuniziert und wie der Server reagiert.

Clientseitige Programmierung

Bei der clientseitigen Programmierung wartet der Client zunächst auf den Start des Servers. Sobald der Server betriebsbereit ist, sendet er die Anforderungen an den Server. Danach wartet der Client auf die Antwort vom Server. Dies ist also die gesamte Logik der Client- und Serverkommunikation. Lassen Sie uns nun die clientseitige und serverseitige Programmierung im Detail verstehen.

Um eine Kundenanfrage zu initiieren, müssen Sie die folgenden Schritte ausführen:

lerne pl sql online kostenlos

1. Stellen Sie eine Verbindung her

Der allererste Schritt besteht darin, eine Socket-Verbindung herzustellen. Eine Socket-Verbindung bedeutet, dass die beiden Computer Informationen über den Netzwerkstandort (IP-Adresse) und den TCP-Port des jeweils anderen Computers haben.

Sie können einen Socket mit Hilfe der folgenden Anweisung erstellen:

Socket Socket = neuer Socket ('127.0.0.1', 5000)

  • Hier repräsentiert das erste Argument die IP-Adresse des Servers .

  • Das zweite Argument repräsentiert die TCP-Port . (Diese Zahl gibt an, welche Anwendung auf einem Server ausgeführt werden soll.)

2. Kommunikation

Um über eine Socket-Verbindung zu kommunizieren, werden Streams sowohl zur Eingabe als auch zur Ausgabe der Daten verwendet. Nachdem Sie eine Verbindung hergestellt und die Anforderungen gesendet haben, müssen Sie die Verbindung schließen.

3. Verbindung schließen

Die Socket-Verbindung wird explizit geschlossen, sobald die Nachricht an den Server gesendet wurde.

Lassen Sie uns nun sehen, wie Sie ein Java-Programm schreiben, um die Socket-Verbindung auf der Clientseite zu implementieren.

// Ein Java-Programm für einen ClientSide-Import java.net. * Import java.io. * public class ClientProgram {// Socket initialisieren und Ausgabestreams eingeben private Socket socket = null private DataInputStream input = null private DataOutputStream out = null // Konstruktor Um IP-Adresse und Port öffentlich zu machen Client (String-Adresse, int-Port) {// Verbindung herstellen try {socket = new Socket (Adresse, Port) System.out.println ('Connected') // nimmt Eingaben vom Terminal input = entgegen new DataInputStream (System.in) // sendet die Ausgabe an den Socket out = new DataOutputStream (socket.getOutputStream ())} catch (UnknownHostException u) {System.out.println (u)} catch (IOException i) {System.out .println (i)} // Zeichenfolge zum Lesen der Nachricht von der Eingabe String line = '' // Lesen Sie weiter, bis 'Over' eingegeben wird, während (! line.equals ('Over')) {try {line = input.readLine ( ) out.writeUTF (line)} catch (IOException i) {System.out.println (i)}} // Verbindung schließen try {input.close () out.close () socket.close ()} catch (IOException) ich ) {System.out.println (i)}} public static void main (String args []) {Client client = neuer Client ('127.0.0.1', 5000)}}

Lassen Sie uns nun die serverseitige Programmierung implementieren und dann zur Ausgabe gelangen.

Serverseitige Programmierung

Grundsätzlich instanziiert der Server sein Objekt und wartet auf die Client-Anfrage. Sobald der Client die Anforderung sendet, kommuniziert der Server mit der Antwort zurück.

Um die serverseitige Anwendung zu codieren, benötigen Sie zwei Sockets, die wie folgt lauten:

  • ZU ServerSocket die auf die Client-Anfragen wartet (wenn ein Client einen neuen Socket () erstellt)

  • Ein schlichter alter Steckdose zur Kommunikation mit dem Kunden.

Danach müssen Sie mit dem Client mit der Antwort kommunizieren.

Kommunikation

getOutputStream () Methode wird verwendet, um die Ausgabe über den Socket zu senden.

Schließen Sie die Verbindung

Es ist wichtig, die Verbindung zu schließen, indem der Socket sowie die Eingabe- / Ausgabestreams geschlossen werden, sobald alles erledigt ist.

Lassen Sie uns nun sehen, wie Sie ein Java-Programm schreiben, um die Socket-Verbindung auf der Serverseite zu implementieren.

// Ein Java-Programm für einen Serverside-Import java.net. * Import java.io. * public class ServerSide {// Socket und Eingabestream initialisieren private Socket socket = null private ServerSocket server = null private DataInputStream in = null // Konstruktor mit port public Server (int port) {// startet den Server und wartet auf eine Verbindung try {server = new ServerSocket (port) System.out.println ('Server gestartet') System.out.println ('Warten auf einen Client .. . ') socket = server.accept () System.out.println (' Client akzeptiert ') // nimmt Eingaben vom Client-Socket in = new DataInputStream (neuer BufferedInputStream (socket.getInputStream ())) String line =' '/ / liest die Nachricht vom Client, bis 'Over' gesendet wird, während (! line.equals ('Over')) {try {line = in.readUTF () System.out.println (line)} catch (IOException i) {System. out.println (i)}} System.out.println ('Verbindung schließen') // Verbindung schließen socket.close () in.close ()} catch (IOException i) {System.out.println (i)}} public static void main (String args []) { Server Server = neuer Server (5000)}}

Nachdem Sie sowohl das Client- als auch das Serverende konfiguriert haben, können Sie zuerst das serverseitige Programm ausführen. Danach müssen Sie das clientseitige Programm ausführen und die Anforderung senden. Sobald die Anfrage vom Client gesendet wird, antwortet der Server zurück. Der folgende Schnappschuss zeigt dasselbe.

1. Wenn Sie das serverseitige Skript ausführen, wird es gestartet und wartet, bis der Client gestartet wird.

2. Als nächstes wird der Client verbunden und gibt die Anforderung in Form einer Zeichenfolge ein.

Unterschied zwischen Koch und Marionette

3. Wenn der Client die Anforderung sendet, antwortet der Server zurück.

So müssen Sie ein Socket-Programm in Java ausführen. Sie können diese Programme auch in einem Terminalfenster oder an einer Eingabeaufforderung ausführen. Da Eclipse mit seinen Funktionen weit fortgeschritten ist, können Sie beide Programme einfach auf einer Konsole ausführen.

Dies bringt uns zum Ende des Artikels über Socket-Programmierung in Java. Ich hoffe, ich habe etwas Licht auf Ihr Wissen geworfen Socket-Programmierung.

Besuche die von Edureka, einem vertrauenswürdigen Online-Lernunternehmen mit einem Netzwerk von mehr als 250.000 zufriedenen Lernenden auf der ganzen Welt. Wir sind hier, um Ihnen bei jedem Schritt auf Ihrer Reise zu helfen. Neben diesen Fragen zu Java-Interviews erstellen wir einen Lehrplan, der für Studenten und Fachleute konzipiert ist, die Java-Entwickler werden möchten.

Hast du eine Frage an uns? Bitte erwähnen Sie dies im Kommentarbereich dieses Artikels „Socket-Programmierung in Java“. Wir werden uns so schnell wie möglich bei Ihnen melden.