Zināt visu par Socket programmēšanu Java

Java Socket programmēšana tiek izmantota saziņai starp lietojumprogrammām, kas darbojas dažādos JRE. Java Socket programmēšana var būt vērsta uz savienojumu vai bez savienojuma.

Socket programmēšana tiek izmantots saziņai starp lietojumprogrammām, kas darbojas dažādās . Tas var būt orientēts uz savienojumu vai bez savienojuma. Kopumā kontaktligzda ir veids, kā izveidot savienojumu starp klientu un serveri. Šajā rakstā es jums visu pastāstīšu par Socket programmēšanu.



Šajā rakstā ir apskatītas šādas tēmas:



Kas ir Socket programmēšana Java?

Ligzdu programmēšana ir veids, kā savienot divus tīkla mezglus, lai sazinātos savā starpā. Viens kontaktligzda (mezgls) klausās noteiktu portu IP, bet citu kontaktligzda sasniedz otru, lai izveidotu saikni.

Klienta servera komunikācija - Socket programmēšana Java valodā - Edureka



Serveris veido klausītāju ligzdu, kamēr klients sasniedz serveri. Kontaktligzda un servera ligzda tiek izmantoti uz savienojumu orientētu ligzdu programmēšanai.

Tagad sapratīsim Socket Programming pamatideju, t.i., kontaktligzdu.

Kas ir Java ligzda?

TO kontaktligzda iekšā ir viens galapunkts divvirzienu sakaru saitei starp divām tīklā darbojošām programmām. A kontaktligzda ir saistīts ar porta numuru, lai TCP slānis varētu identificēt lietojumprogrammu, kurai ir paredzēts nosūtīt datus.



Galapunkts ir IP adreses un porta numura kombinācija. Java platformas pakotne nodrošina klasi,Kontaktligzdakas īsteno divvirzienu savienojuma vienu pusi starp jūsu Java programmu un citu tīkla programmu. Klase atrodas virs platformas atkarīgas ieviešanas augšpusē, no jūsu Java programmas slēpjot jebkuras konkrētas sistēmas detaļas. Izmantojot klasi, nevis paļaujoties uz vietējo kodu, jūsu var sazināties tīklā neatkarīgi no platformas.

Tagad, kad zināt, kas ir Java Socket, ejiet tālāk un saprotam, kā klients sazinās ar serveri un kā serveris reaģē uz to.

Klienta puses programmēšana

Klienta puses programmēšanas gadījumā klients vispirms gaidīs servera palaišanu. Kad serveris ir izveidots un darbojas, tas nosūtīs pieprasījumus serverim. Pēc tam klients gaidīs atbildi no servera. Tātad, tā ir visa klienta un servera saziņas loģika. Tagad sīki saprotam klienta un servera puses programmēšanu.

Lai sāktu klientu pieprasījumu, jums jāveic šādi pasākumi:

1. Izveidojiet savienojumu

Pats pirmais solis ir kontaktligzdas izveidošana. Ligzdas savienojums nozīmē, ka abām mašīnām ir informācija par viena otras tīkla atrašanās vietu (IP adresi) un TCP portu.

Jūs varat izveidot kontaktligzdu, izmantojot tālāk sniegto paziņojumu:

Kontaktligzdas ligzda = jauna kontaktligzda (“127.0.0.1”, 5000)

  • Šeit pirmais arguments atspoguļo Servera IP adrese .

    kā kārtot masīvu c ++
  • Otrais arguments atspoguļo TCP ports . (Tas ir skaitlis, kas norāda, kurai lietojumprogrammai jādarbojas serverī.)

2. Saziņa

Lai sazinātos, izmantojot kontaktligzdas savienojumu, datu ievadei un izvadei tiek izmantotas straumes. Pēc savienojuma izveidošanas un pieprasījumu nosūtīšanas savienojums ir jāaizver.

3. Savienojuma slēgšana

Tiklīdz ziņojums serverim ir nosūtīts, kontaktligzdas savienojums ir skaidri aizvērts.

Tagad redzēsim, kā rakstīt Java programmu, lai klienta pusē ieviestu kontaktligzdas savienojumu.

// Java programma ClientSide importēšanai java.net. * Importēt java.io. * publiskā klase ClientProgram {// inicializēt ligzdu un ievades straumes privātā ligzdas ligzda = null privāta DataInputStream ievade = null privāta DataOutputStream out = null // konstruktors ievietot IP adresi un porta publisko klientu (virknes adrese, int ports) {// izveidot savienojumu, mēģiniet {socket = new Socket (adrese, ports) System.out.println ('Savienots') // ņem ievadi no termināla ieejas = jauns DataInputStream (System.in) // nosūta izvadi ligzdai out = new DataOutputStream (socket.getOutputStream ())} catch (UnknownHostException u) {System.out.println (u)} catch (IOException i) {System.out .println (i)} // virkne, lai lasītu ziņojumu no ievades String line = '' // turpiniet lasīt, līdz tiek ievadīts 'Over', kamēr (! line.equals ('Over')) {mēģiniet {line = input.readLine ( ) out.writeUTF (line)} catch (IOException i) {System.out.println (i)}} // aizveriet savienojumu, mēģiniet {input.close () out.close () socket.close ()} catch (IOException i ) {System.out.println (i)}} public static void main (String args []) {Klienta klients = jauns klients ('127.0.0.1', 5000)}}

Tagad ieviesīsim servera puses programmēšanu un pēc tam nonāksim pie izejas.

Servera puses programmēšana

Būtībā serveris veiks objektu un gaidīs klienta pieprasījumu. Kad klients nosūtīs pieprasījumu, serveris sazināsies ar atbildi.

Lai kodētu servera puses lietojumprogrammu, jums ir nepieciešamas divas ligzdas, un tās ir šādas:

  • TO ServerSocket kas gaida klienta pieprasījumus (kad klients izveido jaunu Socket ())

  • Vienkāršs vecis kontaktligzda saziņai ar klientu.

Pēc tam jums jāsazinās ar klientu ar atbildi.

Komunikācija

getOutputStream () metodi izmanto, lai izvadi nosūtītu caur kontaktligzdu.

Aizveriet savienojumu

Kad viss ir izdarīts, ir svarīgi slēgt savienojumu, aizverot kontaktligzdu, kā arī ievades / izvades straumes.

Tagad redzēsim, kā rakstīt Java programmu, lai servera pusē ieviestu kontaktligzdas savienojumu.

// Java programma servera importēšanai java.net. * Importēt java.io. * publiskā klase ServerSide {// inicializēt ligzdu un ievades straumi privātā ligzdas ligzda = nulles privātā ServerSocket servera = nulles privātā DataInputStream iekšā = null // konstruktors ar port public Server (int ports) {// palaiž serveri un gaida savienojumu, mēģiniet {server = new ServerSocket (ports) System.out.println ('Serveris sākts') System.out.println ('Gaida klientu .. . ') socket = server.accept () System.out.println (' Klients pieņemts ') // ņem ievadi no klienta ligzdas = new DataInputStream (jauns BufferedInputStream (socket.getInputStream ())) String line = '' / / nolasa klienta ziņojumu, līdz tiek nosūtīts ziņojums “Over”, kamēr (! line.equals ('Over')) {mēģiniet {line = in.readUTF () System.out.println (line)} noķert (IOException i) {System. out.println (i)}} System.out.println ('Savienojuma slēgšana') // aizveriet savienojuma ligzdu.close () in.close ()} catch (IOException i) {System.out.println (i)}} public static void main (String args []) { Servera serveris = jauns serveris (5000)}}

Pēc klienta un servera gala konfigurēšanas vispirms varat izpildīt servera puses programmu. Pēc tam jums jāpalaiž klienta puses programma un jānosūta pieprasījums. Tiklīdz pieprasījums tiek nosūtīts no klienta gala, serveris atbildēs. Zemāk momentuzņēmums attēlo to pašu.

1. Palaidot servera puses skriptu, tas tiks palaists un gaidīs, kamēr klients sāks darbu.

2. Pēc tam klients saņems savienojumu un ievadīs pieprasījumu virknes formā.

3. Kad klients nosūta pieprasījumu, serveris atbildēs.

Tieši tā jums jāaizpilda Java programma socket. Šīs programmas var izpildīt arī termināļa logā vai komandu uzvednē. Bet, tā kā Eclipse ir daudz uzlabojusi ar savām funkcijām, jūs varat vienkārši izpildīt abas programmas konsolē.

Tas mūs noved pie raksta par Java programmatūras Socket programmēšanu beigām. Es ceru, ka esmu nedaudz ieskatījies jūsu zināšanās Socket programmēšana.

Pārbaudiet Autors: Edureka, uzticams tiešsaistes mācību uzņēmums ar vairāk nekā 250 000 apmierinātu izglītojamo tīklu visā pasaulē. Mēs esam šeit, lai palīdzētu jums katrā solī jūsu ceļojumā, lai kļūtu par papildus šiem Java intervijas jautājumiem, mēs piedāvājam mācību programmu, kas paredzēta studentiem un profesionāļiem, kuri vēlas būt Java izstrādātāji.

Vai mums ir jautājums? Lūdzu, pieminējiet to šī raksta “Socket Programming in Java” komentāru sadaļā, un mēs pēc iespējas ātrāk sazināsimies ar jums.