Inleiding tot socketprogrammering in Java

Het World Wide Web en internet hebben de manier waarop we leven en met elkaar communiceren en de manier waarop we wetenschap, engineering en handel drijven, veranderd. Het moderne leven wordt volledig rondgedreven of gecentreerd rond internet. Bedrijven zijn continu op zoek naar nieuwe manieren om op een nieuwe manier te produceren en te communiceren met verschillende diensten die innovatie introduceren. In dit artikel zullen we Socket Programming in Java bespreken.

Sockets bieden een interface voor het programmeren van netwerken van de transportlaag van het OSI-model. Netwerkcommunicatie via sockets is overal op internet te vinden. Daarnaast kan een socketprogramma geschreven in Java communiceren met een socketprogramma geschreven in niet-Java-taal zoals C, C ++, Python, etc.

Socket Class-methoden

Socket Class-methoden zijn te vinden in Java. Een socket is ongetwijfeld een poortnummer, zodat de TCP het poortnummer herkent waarnaar de gegevens moeten worden verzonden. Java biedt een set klassen, waaronder java.net. Dit wordt gebruikt voor de snelle ontwikkeling van netwerkapplicaties. De belangrijkste klassen, interfaces en uitzonderingen die aanwezig zijn in het java.net-pakket vereenvoudigen de complexiteit van het maken van client- en serverprogramma's:

De klassen zijn:

  • Content Handler
  • Datagram-pakket
  • Datagram-aansluiting
  • Datagram Socket Imp 1
  • HTTP URL-verbinding
  • Ik heb een adres
  • Multicast-aansluiting
  • Server Socket
  • stopcontact
  • Socket Imp 1
  • URL
  • URL-verbinding
  • URL-encoder
  • URL-streamhandler

De interfaces zijn:

  • Content Handler-fabriek
  • Bestandsnaam kaart
  • Socket Impl Factory
  • URL-streamhandlerfabriek

De uitzonderingen zijn:

  • Bindende uitzondering
  • Verbind uitzondering
  • Misvormde URL-uitzondering
  • Geen route naar hostuitzondering
  • Protocoluitzondering
  • Socket-uitzondering
  • Onbekende hostuitzondering
  • Onbekende service-uitzondering.

TCP / IP-socketprogrammering

Er worden twee klassen gebruikt uit het java.net-pakket die worden gebruikt bij het maken van programma's. Zij zijn:

  • Server Socket
  • stopcontact

Een serverprogramma communiceert via invoer- en uitvoerstromen. Als er een verzoek om verbinding is, is er een nieuwe socket die in het spel komt en hier is een verbinding mee tot stand gebracht.

Methode 1 - Een server-socketprogramma maken

Er zijn verschillende stappen voor het maken van een server-socketprogramma in Java. De eenvoudige stappen voor het maken van een server-socketprogramma zijn als volgt:

Stap 1 - De Socketserver is geopend

Server Socket Algemeen = nieuwe Server Socket (PO)

Hier is PO het poortnummer.

Hier wordt het poortnummer toegewezen aan het servernetwerk waarmee het zal communiceren met behulp van invoer- / uitvoerstromen.

Stap 2 - Er is een klantverzoek waarop we geduldig moeten wachten

Socket Algemeen = server. aanvaarden()

Hier de server. accept () wacht op de client en de naam van de socket is hier Client.

Stap 3 - I / O-stromen worden gemaakt zodat een verbinding tot stand wordt gebracht

Data Input Stream is = nieuwe Data Input Stream (client. Get Input Stream ());

Data Output Stream os = nieuwe Data Output Stream (client. Krijg Output Stream ());

De invoerstroom is en aan de uitvoerstroom os wordt hun Get Input Stream () toegewezen en deze worden respectievelijk genoemd.

Stap 4 - Contact met de klant is gemaakt

Ontvangen van klant: String hello = br. Lees regel();

Stuur het naar de klant: br. Write Bytes ("Hoe gaat het \ n");

De volgende code communiceert met de client die de verzoeken ontvangt en naar een client verzendt.

Stap 5 - Ten slotte is de Socket gemaakt om af te sluiten

Ten slotte wordt de functie Socket afsluiten gebruikt om de socketprogrammering te sluiten en te beëindigen.

Een eenvoudig voorbeeld van een server-socket wordt hieronder getoond:

// Een eenvoudig programma voor het verbinden van de server.

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 - Een eenvoudig server-socketprogramma maken

Nu gaan we een Simple Client-programma in Java zien. De stappen voor het maken van een eenvoudig clientprogramma in Java worden hieronder weergegeven:

Stap 1 - Socket Object is gemaakt

Socket-client = nieuwe Socket (server, port_id)

De server en de poort-ID zijn verbonden, dat wil zeggen de server is verbonden met de poort-ID.

Stap 2 - Invoer / uitvoerstromen worden gemaakt

is = nieuwe gegevensinvoerstroom (client.getInputStream ());

os = nieuwe gegevensuitvoerstroom (client.getOutputStream ());

De Input Stream is en Output Stream os wordt gebruikt voor communicatie met de client.

Stap 3 - Invoer / uitvoerstromen worden gemaakt om met de client te praten

Gegevens worden gelezen van de server: String hello = br. Lees regel();

Verzend gegevens naar de server: br.writeBytes ("Hoe gaat het \ n")

Deze stap communiceert met de server. De invoer- en uitvoerstroom communiceren beide met de server.

Stap 4 - Sluit het stopcontact als u klaar bent

Met deze functie wordt de client gesloten wanneer deze eindelijk is voltooid.

Een voorbeeld van een eenvoudig server-socketprogramma wordt hieronder weergegeven

// Een eenvoudig programma voor de klant

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();
)
)

Conclusie - Socket Programming in Java

  • Socket-programmering is erg handig in Java en in elke andere programmeertaal, in feite omdat een programma dat is geschreven in Java verbinding kan maken met een programma dat is geschreven in C of C ++.
  • Met andere woorden, de taal van het socketprogramma maakt niet uit wanneer er een verbinding tussen de twee moet zijn.
  • In dit artikel hebben we in principe de Simple Server en het Simple Client-voorbeeld gezien waarbij er een verbinding is tussen de server-socket en in het andere geval een verbinding tussen de server-socket.
  • We hebben hiervoor TCP / IP-programmering gebruikt. Er zijn echter veel programmeertechnieken zoals UDP-programmeertechnieken en URL-programmeertechnieken. We hebben in dit artikel geen voorbeelden hiervan gezien. We hebben de nadruk gelegd op TCP / IP-programmeertechniek.

Aanbevolen artikelen

Dit is een handleiding voor het programmeren van sockets in Java. Hier bespreken we Socket Class Methods met Java-programma. U kunt ook onze andere voorgestelde artikelen doornemen -

  1. Java-pakketten
  2. Kopieer Constructor In Java
  3. Sorteren samenvoegen in Java
  4. Gids voor de beste Java-compilers
  5. Voorbeeld Java-pakket | Werk- en coderingsvoorbeeld