Vide alt om Socket Programmering i Java

Java Socket-programmering bruges til kommunikation mellem de applikationer, der kører på forskellige JRE. Java Socket-programmering kan være forbindelsesorienteret eller forbindelsesløs.

Socket programmering i bruges til kommunikation mellem de applikationer, der kører på forskellige . Det kan enten være forbindelsesorienteret eller forbindelsesløst. I det store og hele er et stik en måde at etablere en forbindelse mellem en klient og en server. I denne artikel vil jeg fortælle dig alt om Socket Programming.



Nedenstående emner er dækket af denne artikel:



Hvad er Socket Programming i Java?

Socket programmering er en måde at forbinde to noder på et netværk til at kommunikere med hinanden. En stikkontakt (node) lytter til en bestemt port ved en IP, mens anden stikkontakt når ud til den anden for at danne en forbindelse.

Client Server Communication - Socket Programming in Java - Edureka



Serveren danner lytteren stikkontakt mens klienten når ud til serveren. Socket og server Socket bruges til forbindelsesorienteret stikkontaktprogrammering.

Lad os nu forstå kernekonceptet med Socket Programming, dvs. en sokkel.

Hvad er en stikkontakt i Java?

TIL stikkontakt i er et slutpunkt for en tovejskommunikationsforbindelse mellem to programmer, der kører på netværket. EN stikkontakt er bundet til et portnummer, så TCP-laget kan identificere den applikation, som data er bestemt til at blive sendt til.



Et slutpunkt er en kombination af en IP-adresse og et portnummer. Pakken i Java-platformen giver en klasse,Stikkontaktder implementerer den ene side af en tovejsforbindelse mellem dit Java-program og et andet program på netværket. Klassen sidder oven på en platformafhængig implementering og skjuler detaljerne i ethvert bestemt system fra dit Java-program. Ved at bruge klassen i stedet for at stole på indfødt kode, din kan kommunikere over netværket på en platformuafhængig måde.

Nu hvor du ved, hvad der er Socket i Java, lad os gå videre og forstå, hvordan kommunikerer klienten med serveren, og hvordan serveren reagerer tilbage.

Programmering på klientsiden

I tilfælde af programmering på klientsiden venter klienten først på, at serveren starter. Når serveren er i gang, sender den anmodningerne til serveren. Derefter venter klienten på svaret fra serveren. Så dette er hele logikken i klient- og serverkommunikation. Lad os nu forstå klientsiden og serversides programmering i detaljer.

For at starte en kundeanmodning skal du følge nedenstående trin:

1. Opret en forbindelse

Det allerførste trin er at oprette en stikkontaktforbindelse. En stikketforbindelse indebærer, at de to maskiner har oplysninger om hinandens netværksplacering (IP-adresse) og TCP-port.

Du kan oprette en stikkontakt ved hjælp af nedenstående udsagn:

Bøsning = ny bøsning (“127.0.0.1”, 5000)

  • Her repræsenterer det første argument Serverens IP-adresse .

  • Det andet argument repræsenterer TCP-port . (Det er et tal, der repræsenterer, hvilket program der skal køre på en server.)

2. Kommunikation

For at kommunikere via en sokkelforbindelse bruges streams til både input og output af dataene. Når du har oprettet en forbindelse og sendt anmodningerne, skal du lukke forbindelsen.

3. Lukning af forbindelsen

Stikforbindelsen lukkes eksplicit, når meddelelsen til serveren er sendt.

Lad os nu se, hvordan man skriver et Java-program til implementering af sokkelforbindelse på klientsiden.

// Et Java-program til en ClientSide-import java.net. * Import java.io. * Offentlig klasse ClientProgram {// initialiser socket og input output streams private Socket socket = null private DataInputStream input = null private DataOutputStream out = null // constructor at sætte ip-adresse og port offentlig klient (strengadresse, int-port) {// etablere en forbindelse, prøv {socket = ny stikkontakt (adresse, port) System.out.println ('Connected') // tager input fra terminalindgang = ny DataInputStream (System.in) // sender output til socket out = ny DataOutputStream (socket.getOutputStream ())} fangst (UnknownHostException u) {System.out.println (u)} fangst (IOException i) {System.out .println (i)} // streng for at læse besked fra input String line = '' // Fortsæt læsning, indtil 'Over' er input, mens (! line.equals ('Over')) {prøv {line = input.readLine ( ) out.writeUTF (line)} catch (IOException i) {System.out.println (i)}} // luk forbindelsen, prøv {input.close () out.close () socket.close ()} catch (IOException jeg ) {System.out.println (i)}} offentlig statisk ugyldig hoved (String args []) {Client client = new Client ('127.0.0.1', 5000)}}

Lad os nu implementere serversides programmering og derefter nå frem til output.

Programmering på serversiden

Dybest set vil serveren instantiere sit objekt og vente på klientanmodningen. Når klienten sender anmodningen, kommunikerer serveren tilbage med svaret.

For at kode applikationen på serversiden har du brug for to stik, og de er som følger:

  • TIL ServerSocket som venter på klientanmodningerne (når en klient opretter en ny stikkontakt ())

  • En almindelig gammel stikkontakt til kommunikation med klienten.

Herefter skal du kommunikere med klienten med svaret.

Meddelelse

getOutputStream () metode bruges til at sende output gennem stikket.

Luk forbindelsen

Det er vigtigt at lukke forbindelsen ved at lukke stikket såvel som input / output-streams, når alt er gjort.

Lad os nu se, hvordan man skriver et Java-program til implementering af sokkelforbindelse på serversiden.

// Et Java-program til en serverimport java.net. * Import java.io. * offentlig klasse ServerSide {// initialiser socket og input stream privat Socket socket = null privat ServerSocket server = null privat DataInputStream in = null // konstruktør med port offentlig server (int-port) {// starter server og venter på en forbindelse, prøv {server = ny ServerSocket (port) System.out.println ('Server startet') System.out.println ('Venter på en klient .. . ') sokkel = server.accept () System.out.println (' Klient accepteret ') // tager input fra klientstikket i = ny DataInputStream (ny BufferedInputStream (socket.getInputStream ())) String line =' '/ / læser besked fra klienten, indtil 'Over' sendes, mens (! line.equals ('Over')) {prøv {line = in.readUTF () System.out.println (line)} fangst (IOException i) {System. out.println (i)}} System.out.println ('Lukning af forbindelse') // luk forbindelsesstik.close () in.close ()} fangst (IOException i) {System.out.println (i)}} offentlig statisk ugyldig hoved (String args []) { Serverserver = ny server (5000)}}

Efter at have konfigureret både klient- og serverenden, kan du først udføre serversidesprogrammet. Derefter skal du køre klientsideprogrammet og sende anmodningen. Så snart anmodningen er sendt fra klientenden, svarer serveren tilbage. Nedenstående øjebliksbillede repræsenterer det samme.

1. Når du kører serversidescriptet, starter det og venter på, at klienten kommer i gang.

2. Dernæst bliver klienten tilsluttet og indtaster anmodningen i form af en streng.

3. Når klienten sender anmodningen, svarer serveren tilbage.

Sådan skal du udføre et socket-program i Java. Du kan også udføre disse programmer på et terminalvindue eller en kommandoprompt. Men da Eclipse er godt avanceret med sine funktioner, kan du simpelthen udføre begge programmer på en konsol.

Dette bringer os til slutningen af ​​artiklen om Socket Programming i Java. Jeg håber, jeg har kastet lys over din viden om Socket-programmering.

er postgraduate en kandidatgrad

Tjek den af Edureka, et pålideligt online læringsfirma med et netværk på mere end 250.000 tilfredse elever spredt over hele kloden. Vi er her for at hjælpe dig med hvert trin på din rejse, for at blive et ud over dette java-interviewspørgsmål, kommer vi med en læseplan, der er designet til studerende og fagfolk, der ønsker at være Java-udvikler.

Har du et spørgsmål til os? Nævn det i kommentarfeltet i denne “Socket Programming in Java” -artikel, og vi vender tilbage til dig hurtigst muligt.