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?
- Mi a Socket a Java-ban?
- Kliens oldali programozás
- Szerveroldali programozás
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.
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.