Vet alt om Socket Programming i Java



Java Socket-programmering brukes til kommunikasjon mellom applikasjonene som kjører på forskjellige JRE. Java Socket-programmering kan være tilkoblingsorientert eller tilkoblingsfri.

Socket programmering i brukes til kommunikasjon mellom applikasjonene som kjører på forskjellige . Den kan være enten tilkoblingsorientert eller tilkoblingsfri. I det hele tatt er en stikkontakt en måte å opprette en forbindelse mellom en klient og en server. I denne artikkelen vil jeg fortelle deg alt om Socket Programming.

Følgende emner er dekket i denne artikkelen:





øktadministrasjon i java webapplikasjon

Hva er Socket Programming i Java?

Socket programmering er en måte å koble to noder på et nettverk for å kommunisere med hverandre. En stikkontakt (node) lytter på en bestemt port på en IP, mens andre stikkontakt når ut til den andre for å danne en forbindelse.

Client Server Communication - Socket Programming in Java - Edureka



Serveren danner lytteren stikkontakten mens klienten når ut til serveren. Stikkontakt og serveruttak brukes til tilkoblingsorientert stikkontaktprogrammering.

La oss nå forstå kjernekonseptet med Socket Programming, dvs. en socket.

Hva er en stikkontakt i Java?

TIL stikkontakt i er et endepunkt for en toveiskommunikasjonslink mellom to programmer som kjører på nettverket. EN stikkontakt er bundet til et portnummer slik at TCP-laget kan identifisere applikasjonen som data er bestemt til å sendes til.



Et endepunkt er en kombinasjon av en IP-adresse og et portnummer. Pakken i Java-plattformen gir en klasse,Stikkontaktsom implementerer den ene siden av en toveis forbindelse mellom Java-programmet og et annet program i nettverket. Klassen sitter på toppen av en plattformavhengig implementering, og skjuler detaljene til et bestemt system fra Java-programmet ditt. Ved å bruke klassen i stedet for å stole på innfødt kode, kan din kan kommunisere over nettverket på en plattformuavhengig måte.

Nå som du vet, hva er Socket i Java, la oss gå videre og forstå hvordan kommuniserer klienten med serveren og hvordan serveren reagerer tilbake.

Programmering på klientsiden

Når det gjelder programmering på klientsiden, vil klienten først vente på at serveren skal starte. Når serveren er i gang, vil den sende forespørslene til serveren. Etter det vil klienten vente på svaret fra serveren. Så dette er hele logikken til klient- og serverkommunikasjon. La oss nå forstå klientsiden og serverprogrammeringen i detalj.

For å starte en kundeforespørsel, må du følge trinnene nedenfor:

1. Opprett en forbindelse

Det aller første trinnet er å opprette en stikkontakt. En stikkontaktforbindelse innebærer at de to maskinene har informasjon om hverandres nettverksplassering (IP-adresse) og TCP-port.

Du kan opprette en stikkontakt ved hjelp av en uttalelse nedenfor:

Stikkontakt = ny stikkontakt (“127.0.0.1”, 5000)

  • Her representerer det første argumentet IP-adressen til serveren .

  • Det andre argumentet representerer TCP-port . (Det er et tall som representerer hvilket program som skal kjøres på en server.)

2. Kommunikasjon

For å kommunisere over en stikkontakt, brukes strømmer til både inn- og utdata. Etter at du har opprettet en forbindelse og sendt forespørslene, må du lukke forbindelsen.

3. Lukke tilkoblingen

Stikkontakten er stengt eksplisitt når meldingen til serveren er sendt.

La oss nå se hvordan du skriver et Java-program for å implementere stikkontakt på klientsiden.

// Et Java-program for en ClientSide-import java.net. * Importer java.io. * Offentlig klasse ClientProgram {// initialiser stikkontakt og inngangsutgangsstrømmer privat Socket-stikkontakt = null privat DataInputStream-inngang = null privat DataOutputStream ut = null // for å sette ip-adresse og port offentlig klient (strengadresse, int-port) {// etablere en tilkobling, prøv {socket = new Socket (adresse, port) System.out.println ('Connected') // tar input fra terminalinngang = ny DataInputStream (System.in) // sender utgang til utgangen = ny DataOutputStream (socket.getOutputStream ())} fangst (UnknownHostException u) {System.out.println (u)} fangst (IOException i) {System.out .println (i)} // streng for å lese melding fra inngang String line = '' // fortsett å lese til 'Over' er input mens (! line.equals ('Over')) {prøv {line = input.readLine ( ) out.writeUTF (line)} catch (IOException i) {System.out.println (i)}} // lukk tilkoblingen, prøv {input.close () out.close () socket.close ()} catch (IOException Jeg ) {System.out.println (i)}} public static void main (String args []) {Client client = new Client ('127.0.0.1', 5000)}}

La oss nå implementere server-side programmering og nå frem til utdataene.

Programmering på serversiden

I utgangspunktet vil serveren instantiere objektet og vente på klientforespørselen. Når klienten sender forespørselen, vil serveren kommunisere tilbake med svaret.

For å kode applikasjonen på serversiden, trenger du to stikkontakter, og de er som følger:

  • TIL ServerSocket som venter på klientforespørslene (når en klient lager en ny stikkontakt ())

  • En vanlig gammel stikkontakt for kommunikasjon med klienten.

    hva gjør .format i python

Etter dette må du kommunisere med klienten med svaret.

Kommunikasjon

getOutputStream () metoden brukes til å sende utgangen gjennom kontakten.

Lukk tilkoblingen

Det er viktig å lukke forbindelsen ved å lukke kontakten samt inngangs- / utgangsstrømmer når alt er gjort.

La oss nå se hvordan du skriver et Java-program for å implementere stikkontakt på serversiden.

// Et Java-program for en serverimport java.net. * Import java.io. * offentlig klasse ServerSide {// initialiser stikkontakt og inngangsstrøm privat stikkontakt = null privat ServerSocket server = null privat DataInputStream in = null // konstruktør med port public Server (int-port) {// starter server og venter på en tilkobling, prøv {server = new ServerSocket (port) System.out.println ('Server started') System.out.println ('Waiting for a client .. . ') socket = server.accept () System.out.println (' Client godtatt ') // tar input fra klientkontakten i = new DataInputStream (new BufferedInputStream (socket.getInputStream ())) Strenglinje =' '/ / leser melding fra klient til 'Over' sendes mens (! line.equals ('Over')) {try {line = in.readUTF () System.out.println (line)} catch (IOException i) {System. out.println (i)}} System.out.println ('Closing connection') // lukk tilkoblingsstikkontakt. close () in.close ()} catch (IOException i) {System.out.println (i)}} public static void main (String args []) { Serverserver = ny server (5000)}}

Etter å ha konfigurert både klient- og serveravslutning, kan du først utføre serversidesprogrammet. Etter det må du kjøre klientsideprogrammet og sende forespørselen. Så snart forespørselen er sendt fra klientsiden, vil serveren svare tilbake. Nedenfor er øyeblikksbildet det samme.

1. Når du kjører skriptet på serversiden, vil det starte og vente på at klienten skal komme i gang.

2. Deretter vil klienten bli tilkoblet og legge inn forespørselen i form av en streng.

3. Når klienten sender forespørselen, vil serveren svare tilbake.

Slik trenger du å utføre et socket-program i Java. Du kan også utføre disse programmene i et terminalvindu eller en ledetekst. Men ettersom Eclipse er godt avansert med funksjonene, kan du ganske enkelt utføre begge programmene på en konsoll.

Dette fører oss til slutten av artikkelen om Socket Programming i Java. Jeg håper jeg har kastet litt lys på din kunnskap Socket Programmering.

Sjekk ut av Edureka, et pålitelig online læringsfirma med et nettverk av mer enn 250 000 fornøyde elever spredt over hele verden. Vi er her for å hjelpe deg med hvert trinn på reisen, for å bli en foruten dette java-intervjuspørsmålene, kommer vi med en læreplan som er designet for studenter og fagpersoner som ønsker å være Java-utvikler.

Har du et spørsmål til oss? Vennligst nevn det i kommentarfeltet i denne “Socket Programming in Java” -artikkelen, så kommer vi tilbake til deg så snart som mulig.