Znajte sve o Socket programiranju na Javi



Programiranje Java Socket koristi se za komunikaciju između aplikacija pokrenutih na različitim JRE. Programiranje Java Socket može biti orijentirano na povezivanje ili bez povezivanja.

Programiranje utičnica u koristi se za komunikaciju između aplikacija koje se izvode na različitim . Može biti orijentiran na povezivanje ili bez povezivanja. U cjelini, socket je način uspostavljanja veze između klijenta i poslužitelja. U ovom ću vam članku reći sve o Socket programiranju.

U ovom su članku obrađene sljedeće teme:





Što je Socket programiranje na Javi?

Programiranje utičnica je način povezivanja dva čvora na mreži za međusobnu komunikaciju. Jedan utičnica (čvor) sluša na određenom priključku na IP-u, dok drugi utičnica poseže za drugim kako bi stvorio vezu.

Komunikacija klijentskog poslužitelja - Programiranje soketa u Javi - Edureka



Poslužitelj formira slušatelja utičnica dok klijent dopire do poslužitelja. Socket i Server Socket koriste se za programiranje utičnica orijentiranih na povezivanje.

Sada shvatimo temeljni koncept Socket programiranja, tj. Socket.

Što je Socket u Javi?

DO utičnica u jedna je krajnja točka dvosmjerne komunikacijske veze između dva programa koja se izvode na mreži. A utičnica je vezan za broj porta tako da TCP sloj može identificirati aplikaciju kojoj su podaci namijenjeni za slanje.



Krajnja točka je kombinacija IP adrese i broja priključka. Paket na platformi Java nudi klasu,Utičnicakoji implementira jednu stranu dvosmjerne veze između vašeg Java programa i drugog programa na mreži. Klasa se nalazi na vrhu implementacije ovisno o platformi, skrivajući detalje bilo kojeg određenog sustava iz vašeg Java programa. Korištenjem klase umjesto oslanjanja na izvorni kôd, vaš mogu komunicirati putem mreže na način neovisan o platformi.

Sad kad znate što je Socket u Javi, krenimo dalje i shvatimo kako klijent komunicira s poslužiteljem i kako poslužitelj odgovara natrag.

pl / sql rukovanje iznimkama

Programiranje na strani klijenta

U slučaju programiranja na strani klijenta, klijent će prvo pričekati da se poslužitelj pokrene. Jednom kada poslužitelj bude pokrenut i pokrenut će poslati zahtjeve poslužitelju. Nakon toga, klijent će pričekati odgovor poslužitelja. Dakle, ovo je cijela logika komunikacije klijenta i poslužitelja. Ajmo sada pobliže razumjeti programiranje na strani klijenta i na poslužitelju.

Da biste pokrenuli zahtjev klijenta, morate slijediti dolje navedene korake:

1. Uspostavite vezu

Prvi korak je uspostavljanje utičnice. Povezivanje utičnicom podrazumijeva da dva stroja imaju informacije o međusobnom mrežnom položaju (IP adresa) i TCP priključku.

Socket možete stvoriti uz pomoć dolje navedene izjave:

Socket socket = nova utičnica (“127.0.0.1”, 5000)

  • Ovdje prvi argument predstavlja IP adresa poslužitelja .

  • Drugi argument predstavlja TCP priključak . (To je broj koji predstavlja koji bi program trebao biti pokrenut na poslužitelju.)

    što je hibernate u javi

2. Komunikacija

Da bi se komuniciralo putem utičnice, tokovi se koriste i za unos i za izlaz podataka. Nakon uspostavljanja veze i slanja zahtjeva, vezu morate prekinuti.

3. Zatvaranje veze

Priključak na utičnicu eksplicitno se zatvara kad se pošalje poruka poslužitelju.

Sada da vidimo kako napisati Java program za implementaciju socket veze na klijentskoj strani.

// Java program za ClientSide import java.net. * Import java.io. * public class ClientProgram {// inicijalizacija utičnica i ulaznih izlaznih tokova private Socket socket = null private DataInputStream input = null private DataOutputStream out = null // konstruktor staviti ip adresu i priključiti javnog klijenta (adresa niza, int port) {// uspostaviti vezu pokušati {socket = new Socket (adresa, port) System.out.println ('Connected') // uzima ulaz s terminala input = novi DataInputStream (System.in) // šalje izlaz u utičnicu = new DataOutputStream (socket.getOutputStream ())} catch (UnknownHostException u) {System.out.println (u)} catch (IOException i) {System.out .println (i)} // niz za čitanje poruke s ulaza String line = '' // nastavi čitati dok se ne unese 'Over' dok (! line.equals ('Over')) {try {line = input.readLine ( ) out.writeUTF (line)} catch (IOException i) {System.out.println (i)}} // // zatvori vezu pokušaj {input.close () out.close () socket.close ()} catch (IOException ja ) {System.out.println (i)}} javna statička void glavna (String args []) {Client client = novi klijent ('127.0.0.1', 5000)}}

Sada, implementiramo programiranje na strani poslužitelja, a zatim dođite do rezultata.

Programiranje na poslužitelju

U osnovi, poslužitelj će instancirati svoj objekt i pričekati zahtjev klijenta. Jednom kada klijent pošalje zahtjev, poslužitelj će natrag komunicirati s odgovorom.

Da biste kodirali aplikaciju na strani poslužitelja, trebaju vam dvije utičnice i to su kako slijedi:

  • DO ServerSocket koja čeka zahtjeve klijenta (kada klijent napravi novu Socket ())

  • Običan stari utičnica za komunikaciju s klijentom.

Nakon toga trebate odgovoriti s klijentom.

Komunikacija

getOutputStream () metoda se koristi za slanje izlaza kroz utičnicu.

Zatvorite vezu

pretvoriti decimalni u binarni python kôd

Važno je zatvoriti vezu zatvaranjem utičnice, kao i ulazno / izlaznim tokovima nakon što sve bude gotovo.

Sada da vidimo kako napisati Java program za implementaciju socket veze na strani poslužitelja.

// Java program za uvoz sa strane poslužitelja java.net. * Import java.io. * javna klasa ServerSide {// inicijalizacija soketa i ulazni tok private Socket socket = null private ServerSocket server = null private DataInputStream in = null // konstruktor sa port javni poslužitelj (int port) {// pokreće poslužitelj i čeka vezu pokušaj {server = novi ServerSocket (port) System.out.println ('Server je pokrenut') System.out.println ('Čeka se klijent .. . ') socket = server.accept () System.out.println (' Klijent prihvaćen ') // uzima ulaz iz klijentove utičnice u = new DataInputStream (new BufferedInputStream (socket.getInputStream ())) String line =' '/ / čita poruku od klijenta dok se ne pošalje 'Over' dok je (! line.equals ('Over')) {try {line = in.readUTF () System.out.println (line)} catch (IOException i) {System. out.println (i)}} System.out.println ('Zatvaranje veze') // zatvori vezu socket.close () in.close ()} catch (IOException i) {System.out.println (i)}} javna statička void glavna (String args []) { Poslužitelj poslužitelja = novi poslužitelj (5000)}}

Nakon konfiguriranja oba klijenta i poslužitelja, prvo možete izvršiti program na strani poslužitelja. Nakon toga morate pokrenuti program na strani klijenta i poslati zahtjev. Čim se zahtjev pošalje s kraja klijenta, poslužitelj će odgovoriti natrag. Ispod snimka predstavlja isto.

1. Kada pokrenete skriptu na strani poslužitelja, pokrenut će se i pričekati da klijent započne.

2. Dalje, klijent će se povezati i unijeti zahtjev u obliku niza.

3. Kada klijent pošalje zahtjev, poslužitelj će odgovoriti natrag.

Tako trebate izvršiti socket program na Javi. Te programe možete izvršiti i na prozoru terminala ili u naredbenom retku. No, budući da je Eclipse svojim značajkama dobro napredovao, oba programa možete jednostavno izvršiti na konzoli.

To nas dovodi do kraja članka o Programiranju soketa na Javi. Nadam se da sam bacio malo svjetla na vaše znanje Programiranje utičnica.

Pogledajte Edureka, pouzdane tvrtke za internetsko učenje s mrežom od više od 250 000 zadovoljnih učenika raširenih širom svijeta. Ovdje smo da vam pomognemo u svakom koraku na putovanju, jer osim što postajete pitanja za ovaj intervju za javu, donosimo kurikulum koji je dizajniran za studente i profesionalce koji žele biti programer za Javu.

Imate pitanje za nas? Molimo vas da ga spominjete u odjeljku za komentare ovog članka 'Programiranje soketa na Javi', a mi ćemo vam se javiti što je prije moguće.