Socket-uri de programare pe java

Vrei să dezvolți un program de rețea pe Java - o jucărie, un chat sau amândouă împreună ... Ai găsit articolul potrivit - aici te poți familiariza cu lumea interesantă a socketurilor din Java. După ce ați citit acest articol, veți vedea lumină la capătul tunelului - devine evident scopul obiectelor și modul în care se dezvoltă un program simplu care utilizează prize în limbaje de programare Java.







Ce este un soclu?

Dacă adăugăm împreună ecuațiile de mai sus, obținem:

Dacă ați ghicit-o singură, înseamnă că eforturile mele nu au fost irosite. Dacă nu, citiți-o din nou sau folosiți Google pentru a găsi cel mai bun articol.

Cum se programează folosind socket-uri?

Destul despre teorie, să trecem la acțiune. Vom dezvolta un cod Java foarte simplu și intuitiv care demonstrează utilizarea unor prize. Să încercăm să implementăm următoarea listă de acțiuni:

1) Un program Java va încerca să contacteze un alt program Java (care așteaptă cu disperare cineva să îl contacteze). Suntem numiți primul program de către Client, iar cel de-al doilea de către Server.

2) După ce ați reușit să comunicați cu serverul, clientul așteaptă introducerea de date de la dvs. și trimite textul către server.

3) Programul server trimite clientului acel text pentru a arăta că poate face chiar și o astfel de acțiune utilă.

4) A primit textul de pe server, clientul vă arată pentru a vă arăta opinia serverului despre dvs. Pregătit să începeți să lucrați? Să începem. Observ doar că nu vă voi învăța cum să programați în Java de la zero, ci doar să explicați codul care se referă la prize. Creați 2 noi programe Java și denumiți-le Server.java și Client.java. Am dat codul de mai jos, doar nu te speria, voi explica totul.







Acum compilam codul:

Deschideți două ferestre de comandă (DOS). Într-o fereastră introducem:

Necesar în această ordine.

Acum introduceți o linie de text în fereastra în care rulează clientul și apăsați butonul Enter. Uita-te la două ferestre și vezi ce se întâmplă. La sfârșit, apăsați pe Ctrl-C pentru a opri programele.

Explicarea codului de lucru al prizelor

Luați în considerare următoarea parte a codului serverului:

Clasa ServerSocket este ușor diferită de clasa Socket. Clasa socket-ului este soclul. Principala diferență dintre ServerSocket este că poate face ca programul să aștepte conexiuni de la clienți. Când îl creați, trebuie să specificați portul cu care va funcționa și să apelați metoda accept (). Această metodă determină ca programul să aștepte conexiuni pe portul specificat. Executarea programului se blochează în acest loc până când clientul se conectează. După ce clientul se conectează cu succes, este creat un obiect obișnuit Socket, pe care îl puteți utiliza pentru a efectua toate operațiile existente cu soclul. Rețineți, de asemenea, că acest obiect Socket afișează celălalt capăt al conexiunii. Dacă doriți să trimiteți date către client, atunci nu puteți utiliza propriul soclu pentru acest lucru.

După ce am creat InetAddress, putem crea un soclu:

Următoarele linii convertesc pur și simplu fluxurile către alte tipuri de fluxuri. După aceea, va fi mai ușor să lucrăm cu obiecte String. Acest cod nu face nimic în rețea.

Toate celelalte sunt foarte simple - manipulări simple cu obiecte filetate (fără prize). Puteți utiliza firele preferate, puteți apela metodele preferate și asigurați-vă că transferați date către cel de-al doilea capăt. Dacă nu sunteți foarte informat în utilizarea firelor, vă recomandăm să găsiți un articol despre ele și să îl citiți.

Oggy c0nst bioflash googperson googman googler globus admin indegro DartWaider asdfghjkl HKE xdeveloper dreamx_max bu_ma_ga Yohan Stan ivanBudko rirus Prometeus denchiks aizol ola_sv saimorn activecs angeld76 KBAKEP dimka3210 SweeneyTodd Visya infantis Lenaumovaa Alex_X_x Ceas Megadeth krollchegg sever182 demon Letos mf15 rxic chehonadskih ProgerGeek povestitoare Serhii fil7 i474232898 denisP Testikusik11 CullyCross polinkot kyparus partiza Victor_MM mechos ukuelig SamTan DjTurxan Vona krimz5 dimka6820 Basill warmgrey Grytcyna just_in_time biuwsi methodBoy abashiya vital49 hustlerka ellobo12 Genjya radiator96 azaze11o Denis1989 apache888 Salas Alvisid Katarina2411 eneyovich FeliksSolomonov egorw







Articole similare

Trimiteți-le prietenilor: