Einführung in die Socket-Programmierung in Java

Das World Wide Web und das Internet haben die Art und Weise, wie wir miteinander leben und kommunizieren und wie wir Wissenschaft, Technik und Handel betreiben, verändert. Das moderne Leben ist ganz auf das Internet ausgerichtet. Unternehmen suchen ständig nach neuen Wegen, um verschiedene Dienstleistungen auf eine neue Art und Weise zu produzieren und mit ihnen zu kommunizieren und Innovationen einzuführen. In diesem Artikel werden wir uns mit Socket-Programmierung in Java befassen.

Sockets bieten eine Schnittstelle zum Programmieren von Netzwerken der Transportschicht des OSI-Modells. Netzwerkkommunikation über Sockets ist im gesamten Internet allgegenwärtig. Darüber hinaus kann ein in Java geschriebenes Socket-Programm mit einem in einer anderen Sprache als Java geschriebenen Socket-Programm wie C, C ++, Python usw. kommunizieren.

Socket-Klassenmethoden

Socket-Klassenmethoden sind in Java enthalten. Ein Socket muss eine Portnummer sein, damit der TCP die Portnummer erkennt, an die die Daten gesendet werden sollen. Java bietet eine Reihe von Klassen, von denen eine java.net ist. Dies wird für die schnelle Entwicklung von Netzwerkanwendungen verwendet. Die im java.net-Paket enthaltenen Schlüsselklassen, Schnittstellen und Ausnahmen vereinfachen die Komplexität beim Erstellen von Client- und Serverprogrammen.

Die Klassen sind:

  • Inhaltshandler
  • Datagrammpaket
  • Datagramm-Sockel
  • Datagramm Sockel Imp 1
  • HTTP-URL-Verbindung
  • Ich net adresse
  • Multicast-Socket
  • Server Socket
  • Steckdose
  • Sockel Imp 1
  • URL
  • URL-Verbindung
  • URL Encoder
  • URL Stream Handler

Die Schnittstellen sind:

  • Factory für Inhaltshandler
  • Dateinamensübersicht
  • Socket Impl Factory
  • URL Stream Handler Factory

Die Ausnahmen sind:

  • Ausnahme binden
  • Verbindungsausnahme
  • Fehlerhafte URL-Ausnahme
  • Keine Route zur Host-Ausnahme
  • Protokollausnahme
  • Socket-Ausnahme
  • Unbekannte Hostausnahme
  • Unbekannte Service-Ausnahme.

TCP / IP-Socket-Programmierung

Es werden zwei Klassen aus dem Paket java.net verwendet, die bei der Erstellung von Programmen verwendet werden. Sie sind:

  • Server Socket
  • Steckdose

Ein Serverprogramm kommuniziert über Eingabe- und Ausgabestreams. Wenn es eine Verbindungsanforderung gibt, kommt eine neue Buchse ins Spiel und hier wird eine Verbindung mit dieser hergestellt.

Methode 1 - Erstellen eines Server-Socket-Programms

Es gibt verschiedene Schritte zum Erstellen eines Server-Socket-Programms in Java. Die einfachen Schritte zum Erstellen eines Server-Socket-Programms lauten wie folgt:

Schritt 1 - Der Socket Server wird geöffnet

Server Socket General = neuer Server Socket (PO)

Hier ist PO die Portnummer.

Hier wird die Portnummer dem Servernetzwerk zugewiesen, über das die Kommunikation über Eingabe- / Ausgabestreams erfolgt.

Schritt 2 - Es gibt eine Kundenanfrage, auf die wir geduldig warten müssen

Socket General = Server. akzeptieren()

Hier der Server. accept () wartet auf den Client und der Name des Sockets lautet hier Client.

Schritt 3 - E / A-Streams werden erstellt, damit eine Verbindung hergestellt wird

Dateneingabestream ist = neuer Dateneingabestream (Client. Get Input Stream ());

Datenausgabestream os = neuer Datenausgabestream (client. Get Output Stream ());

Dem Eingabestream is und dem Ausgabestream os wird ihr Get Input Stream () zugewiesen und sie werden jeweils aufgerufen.

Schritt 4 - Kontakt mit dem Kunden wird hergestellt

Empfange vom Kunden: String hello = br. Zeile lesen();

Senden Sie es an den Kunden: br. Schreibe Bytes ("Wie geht es dir \ n");

Der folgende Code kommuniziert mit dem Client, der die Anforderungen empfängt und an einen Client sendet.

Schritt 5 - Schließlich wird der Sockel zum Verlassen gebracht

Schließlich wird die Socket-Schließfunktion verwendet, um die Socket-Programmierung zu schließen und zu beenden.

Ein einfaches Beispiel für einen Server-Socket ist im Folgenden dargestellt:

// Ein einfaches Programm zum Verbinden des Servers.

import java.net.*;
import java.io.*;
public class SimpleMachine (
public static void main(String args()) throws IOException (
// On port 1362 server port is registered
ServerSocket soc = new ServerSocket(1362);
Socket soc1=soc.accept(); // Link is accepted after waiting
// Linked with the socket there should be a connection
OutputStream s1out = soc1.getOutputStream();
DataOutputStream dosH = new DataOutputStream (s1out);
// A string command is sent
dosH.writeUTF("Hello how are you");
// The connection can be closed but the server socket cannot.
dosH.close();
s1out.close();
soc1.close(); )
)

Methode 2 - Erstellen eines einfachen Server-Socket-Programms

Jetzt sehen wir ein einfaches Client-Programm in Java. Die Schritte zum Erstellen eines einfachen Client-Programms in Java sind nachstehend aufgeführt:

Schritt 1 - Socket-Objekt wird erstellt

Socket-Client = neuer Socket (Server, Port-ID)

Der Server und die Port-ID sind verbunden, dh der Server ist mit der Port-ID verbunden.

Schritt 2 - Eingabe / Ausgabe-Streams werden erstellt

is = neuer Dateneingabestream (client.getInputStream ());

os = neuer Datenausgabestream (client.getOutputStream ());

Der Eingabestream ist und der Ausgabestream os wird für die Kommunikation mit dem Client verwendet.

Schritt 3 - Eingabe / Ausgabe-Streams werden für die Kommunikation mit dem Client erstellt

Daten werden vom Server gelesen: String hello = br. Zeile lesen();

Daten an den Server senden: br.writeBytes ("How are you \ n")

Dieser Schritt kommuniziert mit dem Server. Der Eingabestream und der Ausgabestream kommunizieren beide mit dem Server.

Schritt 4 - Schließen Sie den Sockel, wenn Sie fertig sind

Diese Funktion schließt den Client, wenn sie abgeschlossen ist.

Ein Beispiel für ein einfaches Server-Socket-Programm ist unten dargestellt

// Ein einfaches Programm für den Client

import java.net.*;
import java.io.*;
public class SimpleMachineClient (
public static void main(String args()) throws IOException
(
// At port 1325, connection to the server is opened
Socket s1H = new Socket("host", 1325);
// Read the input stream by getting an input file from the socket
Input Stream s1I = s1. getInputStream();
Data Input Stream disH = new Data Input Stream(s1In);
String str = new String (disH.readUTF());
System.out.println(str);
// After it is done, we can close the connection.
disH.close();
s1I.close();
s1H.close();
)
)

Fazit - Socket-Programmierung in Java

  • Die Socket-Programmierung ist in Java und in jeder anderen Programmiersprache sehr nützlich, da ein in Java geschriebenes Programm eine Verbindung zu einem in C oder C ++ geschriebenen Programm herstellen kann.
  • Mit anderen Worten, die Sprache des Socket-Programms spielt keine Rolle, wenn eine Verbindung zwischen beiden besteht.
  • In diesem Artikel haben wir im Grunde genommen das Simple Server- und das Simple Client-Beispiel gesehen, bei dem eine Verbindung zwischen dem Server-Socket und dem Server-Socket besteht.
  • Wir haben dafür die TCP / IP-Programmierung verwendet. Es gibt jedoch viele Programmiertechniken wie UDP-Programmiertechniken und URL-Programmiertechniken. Beispiele dafür haben wir in diesem Artikel nicht gesehen. Wir haben uns auf die TCP / IP-Programmiertechnik konzentriert.

Empfohlene Artikel

Dies ist eine Anleitung zur Socket-Programmierung in Java. Hier besprechen wir Socket-Klassenmethoden mit Java-Programm. Sie können auch unsere anderen Artikelvorschläge durchgehen -

  1. Java-Pakete
  2. Konstruktor in Java kopieren
  3. Sortieren in Java zusammenführen
  4. Leitfaden für die besten Java-Compiler
  5. Java-Paketbeispiel | Arbeits- und Codierungsbeispiel