Tudjon meg mindent a Socket programozásról a Java-ban



A Java Socket programozás a különböző JRE-n futó alkalmazások közötti kommunikációra szolgál. A Java Socket programozás lehet kapcsolatorientált vagy kapcsolat nélküli.

Socket programozás a különböző futtatású alkalmazások közötti kommunikációra szolgál . Lehet akár kapcsolatorientált, akár kapcsolat nélküli. Összességében a socket a kapcsolat létrehozásának módja az ügyfél és a szerver között. Ebben a cikkben mindent elmondok a Socket programozásról.

Az alábbi témákkal foglalkozik ez a cikk:





Mi a Socket programozás a Java-ban?

Socket programozás a hálózat két csomópontjának összekapcsolásának módja az egymással való kommunikációhoz. Egy foglalat (csomópont) egy adott portot hallgat egy IP-n, míg más foglalat a kapcsolat kialakítása érdekében a másikhoz nyúl.

Client Server Communication - Socket programozás Java-ban - Edureka



A szerver alkotja a hallgatót aljzat közben az ügyfél eléri a szervert. Socket és Server Socket csatlakozás-orientált socket programozásra szolgálnak.

Most értsük meg a Socket Programming alapkoncepcióját, vagyis egy socketet.

Mi a Socket a Java-ban?

NAK NEK foglalat ban ben a hálózaton futó két program közötti kétirányú kommunikációs kapcsolat egyik végpontja. A foglalat egy portszámhoz van kötve, így a TCP réteg azonosítani tudja azt az alkalmazást, amelyre az adatokat el akarják küldeni.



A végpont az IP-cím és a portszám kombinációja. A Java platform csomagja osztályt nyújt,Foglalatamely megvalósítja a Java és a hálózat másik programja közötti kétirányú kapcsolat egyik oldalát. Az osztály egy platformfüggő megvalósítás tetején helyezkedik el, elrejti az adott rendszer részleteit a Java programból. Az osztály használatával ahelyett, hogy natív kódra támaszkodna, a platformfüggetlen módon kommunikálhat a hálózaton keresztül.

Most, hogy tudja, mi a Socket a Java-ban, lépjünk tovább, és értsük meg, hogyan kommunikál az ügyfél a szerverrel, és hogyan reagál a szerver.

Kliens oldali programozás

Kliensoldali programozás esetén az ügyfél először megvárja a kiszolgáló elindulását. Amint a kiszolgáló üzemben van, elküldi a kéréseket a szervernek. Ezt követően az ügyfél megvárja a választ a szervertől. Tehát ez az ügyfél és a szerver kommunikációjának teljes logikája. Most értsük meg részletesen az ügyféloldali és szerveroldali programozást.

Ügyfélkérés kezdeményezéséhez kövesse az alábbi lépéseket:

talend nyitott stúdió bemutató pdf

1. Hozzon létre egy kapcsolatot

A legelső lépés a csatlakozóaljzat létrehozása. A socket kapcsolat azt jelenti, hogy a két gép rendelkezik információkkal egymás hálózati helyéről (IP-cím) és a TCP-portról.

Socket létrehozható egy alábbi utasítás segítségével:

Csatlakozóaljzat = új foglalat („127.0.0.1”, 5000)

  • Itt az első érv a A kiszolgáló IP-címe .

  • A második érv a TCP port . (Ez egy szám, amely azt jelzi, melyik alkalmazást kell futtatni a szerveren.)

2. Kommunikáció

A socket kapcsolaton keresztüli kommunikáció érdekében adatfolyamokat használnak mind az adatok be-, mind kimenetéhez. Miután létrehozta a kapcsolatot és elküldte a kéréseket, meg kell szüntetnie a kapcsolatot.

3. A kapcsolat bezárása

A socket kapcsolat kifejezetten lezárul, amint az üzenetet elküldjük a szervernek.

Most nézzük meg, hogyan írhatunk Java programot a socket kapcsolat megvalósításához az ügyfél oldalon.

// Java program a ClientSide importálásához java.net. * Import java.io. * public class ClientProgram {// a socket és a kimeneti adatfolyamok inicializálása private Socket socket = null private DataInputStream input = null private DataOutputStream out = null // constructor IP cím és port nyilvános kliens (String cím, int port) {// kapcsolatot létesít, próbálkozzon {socket = új Socket (cím, port) System.out.println ('Csatlakoztatva') // bemenetet kap a terminál bemenetéről új DataInputStream (System.in) // kimenetet küld a foglalatba out = új DataOutputStream (socket.getOutputStream ())} catch (UnknownHostException u) {System.out.println (u)} catch (IOException i) {System.out .println (i)} // karakterlánc az üzenet beolvasásához a bemenetről ) out.writeUTF (vonal)} catch (IOException i) {System.out.println (i)}} // zárja be a kapcsolatot, próbálja meg {input.close () out.close () socket.close ()} catch (IOException én ) {System.out.println (i)}} public static void main (String args []) {Client client = new Client ('127.0.0.1', 5000)}}

Most valósítsuk meg a szerveroldali programozást, majd érjük el a kimenetet.

Szerveroldali programozás

Alapvetően a szerver példányosítja az objektumát, és megvárja az ügyfél kérését. Amint az ügyfél elküldi a kérést, a szerver visszakapcsolja a választ.

A kiszolgálóoldali alkalmazás kódolásához két foglalatra van szükség, amelyek a következők:

  • NAK NEK ServerSocket amely megvárja az ügyfél kéréseit (amikor az ügyfél új Socket-et készít ())

  • Egy sima öreg foglalat az ügyféllel való kommunikációhoz.

Ezek után kommunikálnia kell az ügyféllel a válaszadással.

Kommunikáció

getOutputStream () metódust használnak a kimenet küldésére a foglalaton keresztül.

Zárja be a kapcsolatot

Fontos, hogy lezárja a kapcsolatot az aljzat, valamint a bemeneti / kimeneti adatfolyam bezárásával, miután minden elkészült.

Most nézzük meg, hogyan írhatunk Java programot a socket kapcsolat megvalósításához a szerver oldalon.

// Java program egy kiszolgálóoldali importáláshoz java.net. * Import java.io. * public class ServerSide {// inicializálja a socketet és a bemeneti adatfolyamot privát Socket socket = null privát ServerSocket szerver = null privát DataInputStream in = null // konstruktor port public Server (int port) {// elindítja a szervert és várja a kapcsolatot, próbálkozzon a {server = new ServerSocket (port) System.out.println ('Server elindult') System.out.println ('Ügyfélre várva .. . ') socket = server.accept () System.out.println (' Ügyfél elfogadva ') // bemenetet vesz fel az ügyfél foglalatából az = new DataInputStream (új BufferedInputStream (socket.getInputStream ())) karakterlánc sor = '' / / olvassa az ügyfelektől az üzenetet, amíg az 'Over' el nem lesz küldve, amíg (! line.equals ('Over')) {try {line = in.readUTF () System.out.println (line)} catch (IOException i) {System. out.println (i)}} System.out.println ('Kapcsolat lezárása') // bezárja a csatlakozási socket.close () in.close ()} catch (IOException i) {System.out.println (i)}} public static void main (String args []) { Kiszolgálószerver = új kiszolgáló (5000)}}

Az ügyfél és a kiszolgáló végének konfigurálása után először futtathatja a szerver oldali programot. Ezt követően futtatnia kell az ügyféloldali programot és el kell küldenie a kérést. Amint a kérést elküldi az ügyfél végéről, a szerver válaszol. Az alábbi pillanatkép ugyanazt ábrázolja.

1. A kiszolgálóoldali parancsfájl futtatásakor elindul, és megvárja, amíg az ügyfél elindul.

2. Ezután az ügyfél összekapcsolódik, és karakterlánc formájában adja meg a kérést.

adatstruktúrák és algoritmusok java

3. Amikor az ügyfél elküldi a kérést, a szerver válaszol.

Így kell egy socket programot futtatnia a Java-ban. Ezeket a programokat a terminál ablakában vagy a parancssorban is futtathatja. De mivel az Eclipse a funkcióival jó előrelépést jelent, egyszerűen végrehajthatja mindkét programot egy konzolon.

Ezzel eljutottunk a Java Socket programozásáról szóló cikk végéhez. Remélem, rávilágítottam némi ismeretére Socket programozás.

Nézze meg a az Edureka, egy megbízható online tanulási vállalat, amelynek több mint 250 000 elégedett tanulóval rendelkező hálózata elterjedt az egész világon. Azért vagyunk itt, hogy segítséget nyújtsunk az utazás minden lépésében, hogy e java interjúk kérdése mellett a tananyagot kitaláljuk olyan hallgatók és szakemberek számára, akik Java fejlesztők szeretnének lenni.

Van egy kérdésünk? Kérjük, említse meg a „Socket programozás Java-ban” cikk megjegyzés szakaszában, és a lehető leghamarabb kapcsolatba lépünk Önnel.