Dozviete sa všetko o programovaní zásuviek v Jave



Programovanie Java Socket sa používa na komunikáciu medzi aplikáciami bežiacimi na rôznych JRE. Programovanie Java Socket môže byť orientované na pripojenie alebo bez pripojenia.

Programovanie zásuviek v sa používa na komunikáciu medzi aplikáciami, ktoré sú spustené na rôznych . Môže byť orientovaný na pripojenie alebo bez pripojenia. Soket je celkovo spôsob, ako nadviazať spojenie medzi klientom a serverom. V tomto článku vám poviem všetko o programovaní zásuviek.

V tomto článku sa venujeme týmto témam:





Čo je programovanie zásuviek v Jave?

Programovanie zásuviek je spôsob spojenia dvoch uzlov v sieti na vzájomnú komunikáciu. Jeden zásuvka (uzol) počúva na konkrétnom porte pri IP, zatiaľ čo iné zásuvka natiahne sa k druhému, aby vytvoril spojenie.

Komunikácia klient - server - programovanie zásuviek v Jave - Edureka



Server tvorí poslucháča zásuvka zatiaľ čo klient natiahne server. Socket a Server Socket sa používajú na programovanie zásuviek orientovaných na pripojenie.

Poďme teraz pochopiť základný koncept programovania soketov, t. J. Soket.

Čo je Socket v Jave?

TO zásuvka v je jeden koncový bod obojsmerného komunikačného spojenia medzi dvoma programami bežiacimi v sieti. A zásuvka je naviazaný na číslo portu, aby vrstva TCP mohla identifikovať aplikáciu, do ktorej sú údaje určené na odoslanie.



Koncový bod je kombináciou adresy IP a čísla portu. Balík na platforme Java poskytuje triedu,Zásuvkaktorá realizuje jednu stranu obojsmerného spojenia medzi vaším programom Java a iným programom v sieti. Trieda je umiestnená na vrchole implementácie závislej na platforme a vo vašom programe Java skrýva podrobnosti o ktoromkoľvek konkrétnom systéme. Použitím triedy namiesto spoliehania sa na natívny kód, vaše môže komunikovať po sieti spôsobom nezávislým na platforme.

Teraz, keď viete, čo je Socket v Jave, poďme ďalej a pochopme, ako klient komunikuje so serverom a ako server odpovedá späť.

Programovanie na strane klienta

V prípade programovania na strane klienta bude klient najskôr čakať na spustenie servera. Keď je server funkčný, odošle požiadavky na server. Potom bude klient čakať na odpoveď servera. Toto je celá logika komunikácie medzi klientom a serverom. Poďme si teraz podrobne porozumieť programovanie na strane klienta a servera.

inštancia triedy Java

Ak chcete iniciovať žiadosť klientov, musíte postupovať podľa nasledujúcich krokov:

1. Vytvorte pripojenie

Úplne prvým krokom je vytvorenie zásuvkového spojenia. Pripojenie soketom znamená, že tieto dva počítače majú informácie o vzájomnom sieťovom umiestnení (adresa IP) a porte TCP.

Zásuvku môžete vytvoriť pomocou vyhlásenia uvedeného nižšie:

Zásuvka zásuvky = nová zásuvka („127.0.0.1“, 5 000)

triedenie algoritmu c ++
  • Prvý argument tu predstavuje IP adresa servera .

  • Druhý argument predstavuje TCP port . (Je to číslo, ktoré predstavuje, ktorá aplikácia by sa mala spustiť na serveri.)

2. Komunikácia

Na komunikáciu cez soketové pripojenie sa na vstup a výstup dát používajú prúdy. Po nadviazaní spojenia a odoslaní požiadaviek musíte spojenie ukončiť.

3. Ukončenie spojenia

Po odoslaní správy na server sa soketové pripojenie výslovne uzavrie.

Teraz sa pozrime, ako napísať program Java na implementáciu pripojenia soketu na strane klienta.

// Program Java pre import ClientSide java.net. * Import java.io. * verejná trieda ClientProgram {// inicializovať soket a vstupné výstupné toky private Socket socket = null private DataInputStream vstup = null private DataOutputStream out = null // konštruktor vložiť IP adresu a verejný port Klient (adresa reťazca, int port) {// nadviazať pripojenie vyskúšajte {socket = new Socket (adresa, port) System.out.println ('Connected') // berie vstup z terminálu input = new DataInputStream (System.in) // pošle výstup do zásuvky out = new DataOutputStream (socket.getOutputStream ())} catch (UnknownHostException u) {System.out.println (u)} catch (IOException i) {System.out .println (i)} // reťazec na čítanie správy zo vstupu String line = '' // čítaj ďalej, kým sa nezadá 'Over' while (! line.equals ('Over')) {try {line = input.readLine ( ) out.writeUTF (riadok)} chytiť (IOException i) {System.out.println (i)}} // ukončiť pripojenie vyskúšať {input.close () out.close () socket.close ()} chytiť (IOException) i ) {System.out.println (i)}} public static void main (String args []) {Client client = new Client ('127.0.0.1', 5000)}}

Teraz implementujme programovanie na strane servera a potom dospejeme k výstupu.

Programovanie na strane servera

Server v zásade vytvorí inštanciu svojho objektu a počká na požiadavku klienta. Akonáhle klient pošle požiadavku, server bude komunikovať späť s odpoveďou.

Na kódovanie aplikácie na strane servera potrebujete dve zásuvky, ktoré sú nasledujúce:

  • TO ServerSocket ktorý čaká na požiadavky klienta (keď klient vytvorí nový Socket ())

  • Obyčajný starý zásuvka pre komunikáciu s klientom.

Potom musíte s klientom komunikovať s odpoveďou.

Komunikácia

getOutputStream () metóda sa používa na odoslanie výstupu cez soket.

Ukončite pripojenie

Po dokončení všetkého je dôležité ukončiť pripojenie zatvorením soketu, ako aj vstupných / výstupných prúdov.

Teraz sa pozrime, ako napísať program Java na implementáciu pripojenia soketu na strane servera.

// Program Java pre server Serverside import java.net. * Import java.io. * public class ServerSide {// inicializovať soket a vstupny stream private Socket socket = null private ServerSocket server = null private DataInputStream in = null // constructor with port public Server (int port) {// spustí server a čaká na pripojenie skúste {server = nový ServerSocket (port) System.out.println ('Server spustený') System.out.println ('Čakanie na klienta .. . ') socket = server.accept () System.out.println (' Klient akceptovaný ') // berie vstup z klientskej zásuvky v = new DataInputStream (nový BufferedInputStream (socket.getInputStream ())) String line =' '/ / prečíta správu z klienta, kým sa neodošle správa „Over“, kým (! line.equals („Over“)) {try {line = in.readUTF () System.out.println (line)} catch (IOException i) {System. out.println (i)}} System.out.println ('Ukončovacie pripojenie') // zavrieť pripojenie socket.close () in.close ()} catch (IOException i) {System.out.println (i)}} public static void main (String args []) { Server server = nový server (5 000)}}

Po nakonfigurovaní konca klienta aj servera môžete najskôr spustiť program na strane servera. Potom musíte spustiť program na strane klienta a odoslať žiadosť. Hneď ako sa požiadavka odošle z konca klienta, server odpovie späť. Nižšie uvedený obrázok predstavuje to isté.

1. Keď spustíte skript na strane servera, spustí sa a počká na spustenie klienta.

vzťah medzi Javou a Javascriptom

2. Ďalej sa klient pripojí a zadá požiadavku vo forme reťazca.

3. Keď klient pošle požiadavku, server odpovie späť.

Takto musíte vykonať program soketu v prostredí Java. Tieto programy môžete tiež spustiť v okne terminálu alebo na príkazovom riadku. Pretože je Eclipse svojimi funkciami veľmi pokročilý, môžete obidva programy jednoducho spustiť na konzole.

Týmto sa dostávame na koniec článku o Socket Programming in Java. Dúfam, že som na vaše vedomosti vniesol trochu svetla Programovanie zásuviek.

Pozrite sa na autor: Edureka, dôveryhodná online vzdelávacia spoločnosť so sieťou viac ako 250 000 spokojných študentov rozmiestnených po celom svete. Sme tu, aby sme vám pomohli na každom kroku na vašej ceste. Okrem otázok týkajúcich sa tohto rozhovoru pre jazyk java vymyslíme učebný plán určený pre študentov a profesionálov, ktorí chcú byť vývojármi v prostredí Java.

Máte na nás otázku? Uveďte to prosím v sekcii komentárov v tomto článku „Programovanie zásuviek v Jave“ a my sa vám ozveme čo najskôr.