Jelenlegi hely

22.3.1 Mi az a socket?

Normális esetben a szerver egy speciális számítógépen fut és van egy socket-je, ami egy speciális port számra van kötve. A szerver várakozik, figyeli a socket-et hogy van-e felkérés egy klienstől a kapcsolódásra.

A kliens oldalon: A kliens ismeri annak a számítógépnek a hosztnevét, amelyiken a szerver fut, és annak a portnak a számát, amelyiken keresztül a szerver kapcsolódva van. A kapcsolatra való felkéréshez a kliensnek érintkeznie kell a szerverrel a szerver gépén és port-ján.

Connection Request

Ha minden jól megy, a szerver elfogadja a kapcsolatot. Az elfogadás során, a szerver egy új socket porthoz kapcsolódik. Kell egy új socket (és természetesen egy különböző port szám is), ezért folytatódik a figyelés az eredeti socket-en a kapcsolatkérésre, amíg a kliensnek kapcsolódnia kell.

Server-Client Conncection

A kliens oldalon, ha a kapcsolat elfogadásra került, a socket sikeresen létrejött, és a kliens használni tudja a socket-et a szerverrel való kommunikálásra.

Megjegyzés: a kliens oldali socket nincs összekötve azzal a port számmal, amit a szerverrel való kapcsolattartásra használ. A kliens a helyi kijelölt port számmal azonosítható azon a gépen, amin fut.
A kliens és a szerver kapcsolatot tud létrehozni a socket-jeik által írásra, vagy olvasásra.

Definíció: A socket egy végpontja egy kétvégű kommunikációs hálózatnak, amin két program fut. A socket egy port számhoz van kötve, ezért a TCP réteg azonosítani tudja a kérést, amit ahhoz kértek, hogy elküldhessék az adatot.

A java.net csomag a tartalmaz egy Socket osztályt, ami alkalmas egy kétirányú kapcsolat egyik oldalának vezérlésére egy, a hálózaton lévő másik program felé. Ezen kívül a java.net tartalmazza a ServerSocket osztályt, amely figyel és elfogadja a kapcsolatot a kliensektől.

Ha a webhez akarunk kapcsolódni, az URL osztály és a kapcsolódó osztályok (URLConnection, URLEncoder) talán alkalmasabbak, mint a Socket osztály. Valójában az URL viszonylag magas szintű kapcsolatot teremt a webbel, és használja a socket-eket.