Žinokite viską apie „Socket“ programavimą „Java“



„Java Socket“ programavimas naudojamas ryšiui tarp programų, veikiančių skirtingais JRE. „Java Socket“ programavimas gali būti orientuotas į ryšį arba be ryšio.

Lizdo programavimas naudojamas ryšiui tarp skirtingų programų veikiančių programų . Tai gali būti orientuota į ryšį arba be ryšio. Apskritai, lizdas yra būdas užmegzti ryšį tarp kliento ir serverio. Šiame straipsnyje aš jums pasakysiu viską apie „Socket“ programavimą.

Šiame straipsnyje aptariamos šios temos:



Kas yra „Socket“ programavimas „Java“?

Lizdo programavimas yra būdas prijungti du tinklo mazgus, kad būtų galima bendrauti. Vienas lizdas (mazgas) klausosi tam tikro prievado IP, o kitas lizdas siekia kito, kad užmegztų ryšį.

Kliento serverio ryšys - „Socket“ programavimas „Java“ sistemoje - „Edureka“



Serveris sudaro klausytoją lizdas, kol klientas kreipiasi į serverį. Lizdas ir serverio lizdas yra naudojami į jungtį orientuotam lizdo programavimui.

Dabar supraskime pagrindinę „Socket Programming“ koncepciją, ty lizdą.

Kas yra „Java“ lizdas?

Į lizdas į yra vienas iš abipusio ryšio ryšio tarp dviejų tinkle veikiančių programų taškų. A lizdas yra susietas su prievado numeriu, kad TCP sluoksnis galėtų identifikuoti taikomąją programą, kuriai turi būti siunčiami duomenys.



Galutinis taškas yra IP adreso ir prievado numerio derinys. „Java“ platformos paketas suteikia klasę,Lizdaskuris įgyvendina vieną pusę abipusio ryšio tarp jūsų „Java“ programos ir kitos tinklo programos. Klasė yra ant platformos priklausomo diegimo viršuje, paslėpdama bet kurios konkrečios sistemos informaciją iš savo „Java“ programos. Naudodami klasę, o ne pasikliaujant savuoju kodu, jūsų gali bendrauti tinklu nepriklausomai nuo platformos.

Dabar, kai žinote, kas yra „Java“ „Socket“, eikime toliau ir supraskime, kaip klientas bendrauja su serveriu ir kaip serveris atsiliepia.

Kliento pusės programavimas

Kliento pusės programavimo atveju klientas pirmiausia lauks serverio paleidimo. Kai serveris veikia ir veikia, jis išsiųs užklausas į serverį. Po to klientas lauks atsakymo iš serverio. Taigi, tai yra visa kliento ir serverio bendravimo logika. Dabar išsamiai supraskime kliento ir serverio pusės programavimą.

kaip nustatyti užtemimą Java

Norėdami inicijuoti klientų užklausą, turite atlikti toliau nurodytus veiksmus:

1. Užmegzkite ryšį

Pirmasis žingsnis yra užmegzti lizdo jungtį. Lizdo jungtis reiškia, kad abi mašinos turi informacijos apie viena kitos tinklo vietą (IP adresą) ir TCP prievadą.

„Socket“ galite sukurti naudodami toliau pateiktą teiginį:

Lizdo lizdas = naujas lizdas („127.0.0.1“, 5000)

fibonacci serijos programa java
  • Čia pirmasis argumentas reiškia Serverio IP adresas .

  • Antrasis argumentas reiškia TCP prievadas . (Tai skaičius, nurodantis, kurią programą reikia paleisti serveryje.)

2. Bendravimas

Norint bendrauti per lizdą, srautai naudojami tiek duomenims įvesti, tiek išvestims. Užmezgę ryšį ir išsiųsdami užklausas, turite uždaryti ryšį.

3. Ryšio uždarymas

Išsiuntus pranešimą į serverį, lizdo ryšys yra aiškiai uždarytas.

Dabar pažiūrėkime, kaip parašyti „Java“ programą, kad kliento pusėje būtų įdiegtas „socket“ ryšys.

// Java programa, skirta „ClientSide“ importuoti „java.net“. * Importuoti „java.io“. * Viešoji klasė „ClientProgram“ {// inicijuoti lizdo ir įvesties išvesties srautus. įdėti IP adresą ir uosto viešąjį klientą (eilutės adresas, int prievadas) {// užmegzti ryšį, pabandykite {socket = new Socket (address, port) System.out.println ('Connected') // ima įvestį iš terminalo įvesties = new DataInputStream (System.in) // siunčia išvestį į lizdą out = new DataOutputStream (socket.getOutputStream ())} catch (UnknownHostException u) {System.out.println (u)} catch (IOException i) {System.out .println (i)} // eilutė, skirta skaityti pranešimą iš įvesties eilutė eilutė = '' // tęskite skaitymą, kol bus įvestas 'Over', o (! line.equals ('Over')) {pabandykite {line = input.readLine ( ) out.writeUTF (line)} catch (IOException i) {System.out.println (i)}}} // uždarykite ryšį, pabandykite {input.close () out.close () socket.close ()} catch (IOException i ) {System.out.println (i)}} public static void main (String args []) {Client client = new Client ('127.0.0.1', 5000)}}

Dabar įgyvendinkime serverio pusės programavimą ir tada pasiekime išvestį.

Serverio pusės programavimas

Iš esmės serveris iš karto sužadins savo objektą ir lauks kliento užklausos. Kai klientas išsiųs užklausą, serveris susisieks su atsakymu.

Norint užkoduoti serverio programos programą, jums reikia dviejų lizdų, kurie yra šie:

  • Į „ServerSocket“ kuris laukia kliento užklausų (kai klientas sukuria naują „Socket“ ())

  • Paprastas senas lizdas bendravimui su klientu.

Po to turite susisiekti su klientu su atsakymu.

Bendravimas

„getOutputStream“ () metodas naudojamas išvesties siuntimui per lizdą.

Uždarykite jungtį

Svarbu uždaryti jungtį uždarant lizdą, taip pat įvesties / išvesties srautus, kai viskas bus padaryta.

Dabar pažiūrėkime, kaip parašyti „Java“ programą, norint įdiegti „socket“ ryšį serverio pusėje.

// „Java“ programa, skirta serveriui importuoti java.net. * Importuoti java.io. * viešoji klasė „ServerSide“ {// inicijuoti lizdą ir įvesties srautą privatus „Socket“ lizdas = null privatus „ServerSocket“ serveris = niekinis privatus „DataInputStream“ in = null // konstruktorius port public Server (int port) {// paleidžia serverį ir laukia ryšio, pabandykite {server = new ServerSocket (port) System.out.println ('Server prasidėjo') System.out.println ('Laukiama kliento .. . ') socket = server.accept () System.out.println (' Klientas priimtas ') // ima įvestį iš kliento lizdo = new DataInputStream (nauja BufferedInputStream (socket.getInputStream ())) Eilučių eilutė =' '/ / skaito kliento pranešimą, kol bus išsiųstas pranešimas „Per“, kol (! line.equals ('Over')) {pabandykite {line = in.readUTF () System.out.println (line)} gaudyti (IOException i) {System. out.println (i)}} System.out.println ('Ryšio uždarymas') // uždaryti jungties lizdą.close () in.close ()} catch (IOException i) {System.out.println (i)}} public static void main (String args []) { Serverio serveris = naujas serveris (5000)}}

Konfigūravę kliento ir serverio pabaigą, pirmiausia galite paleisti serverio programos programą. Po to turite paleisti kliento programą ir išsiųsti užklausą. Kai tik užklausa bus išsiųsta iš kliento pabaigos, serveris atsakys. Žemiau esanti nuotrauka rodo tą patį.

1. Kai paleidžiate serverio pusės scenarijų, jis paleidžiamas ir laukia, kol klientas pradės veikti.

kaip naudoti žymeklį CSS

2. Tada klientas prisijungs ir užklausą įves eilutės forma.

3. Kai klientas išsiunčia užklausą, serveris atsakys.

Štai kaip jums reikia paleisti „Java“ socket programą. Šias programas taip pat galite vykdyti terminalo lange arba komandų eilutėje. Kadangi „Eclipse“ yra labai pažengusi savo funkcijomis, galite paprasčiausiai vykdyti abi programas konsolėje.

Tai leidžia mums baigti straipsnį apie „Socket“ programavimą „Java“. Tikiuosi, kad šiek tiek apšvietiau jūsų žinias Lizdo programavimas.

Patikrinkite sukūrė „Edureka“ - patikima internetinė mokymosi įmonė, turinti daugiau nei 250 000 patenkintų besimokančiųjų tinklą. Mes esame čia, kad padėtume jums kiekviename jūsų kelionės žingsnyje, kad taptume be šių „Java“ interviu klausimų, mes parengėme programą, skirtą studentams ir specialistams, norintiems būti „Java“ kūrėjais.

Turite mums klausimą? Prašau tai paminėti šio straipsnio „Socket Programming in Java“ komentarų skyriuje ir mes kuo greičiau susisieksime su jumis.