az aljzatok lehetővé teszik a kommunikációt két különböző folyamat között ugyanazon vagy különböző gépeken. Pontosabban, ez egy módja annak, hogy beszéljen más számítógépekkel a szokásos Unix fájlleírók használatával. A Unix-ban minden I / O művelet egy fájlleíró írásával vagy olvasásával történik. A fájlleíró csak egy nyitott fájlhoz társított egész szám, amely lehet hálózati kapcsolat, szöveges fájl, terminál vagy valami más.
egy programozó számára a socket úgy néz ki és viselkedik, mint egy alacsony szintű fájlleíró. Ez azért van, mert az olyan parancsok, mint a read() és a write() ugyanúgy működnek a foglalatokkal, mint a fájlokkal és a csövekkel.
az aljzatokat először a 2.1 BSD-ben vezették be, majd a jelenlegi formájukra finomították a 4.2 BSD-vel. A sockets funkció már elérhető a legtöbb jelenlegi UNIX rendszerkiadással.
hol használják a foglalatot?
egy Unix Socket egy kliens-szerver alkalmazás keretrendszerben használatos. A szerver olyan folyamat, amely bizonyos funkciókat az ügyfél kérésére hajt végre. A legtöbb alkalmazásszintű protokoll, például az FTP, az SMTP és a POP3 socketeket használ az ügyfél és a kiszolgáló közötti kapcsolat létrehozására, majd az adatok cseréjére.
foglalat típusok
négyféle aljzat áll a Felhasználók rendelkezésére. Az első kettőt használják leggyakrabban,az utolsó kettőt pedig ritkán.
a folyamatok feltételezhetően csak azonos típusú aljzatok között kommunikálnak, de nincs olyan korlátozás, amely megakadályozná a különböző típusú aljzatok közötti kommunikációt.
-
Stream Sockets-hálózati környezetben történő szállítás garantált. Ha három “a, B, C” elemet küld a stream aljzaton keresztül, akkor ugyanabban a sorrendben érkeznek − “A, B, C”. Ezek az aljzatok TCP-t (Transmission Control Protocol) használnak az adatátvitelhez. Ha a kézbesítés lehetetlen, a feladó hibajelzőt kap. Az adatrekordoknak nincsenek határai.
-
Datagram Sockets – hálózati környezetben történő szállítás nem garantált. Kapcsolat nélküliek, mert nincs szükség nyílt kapcsolatra, mint a Stream Sockets-ben − egy csomagot készítesz a célinformációkkal,és elküldöd. UDP-t (User Datagram Protocol) használnak.
-
nyers aljzatok – ezek hozzáférést biztosítanak a felhasználók számára az alapul szolgáló kommunikációs protokollokhoz, amelyek támogatják a socket absztrakciókat. Ezek az aljzatok általában datagram-orientáltak, bár pontos jellemzőik a protokoll által biztosított interfésztől függenek. A nyers aljzatok nem az általános felhasználók számára készültek; elsősorban azok számára biztosították őket, akik érdeklődnek az új kommunikációs protokollok kifejlesztése iránt, vagy hogy hozzáférjenek egy meglévő protokoll néhány rejtettebb létesítményéhez.
-
szekvenált Csomagfoglalatok-hasonlóak a stream aljzathoz, azzal a kivétellel, hogy a rekordhatárok megmaradnak. Ez az interfész csak a hálózati rendszerek (ns) socket absztrakciójának része, és nagyon fontos a legsúlyosabb NS alkalmazásokban. A Sequenced-packet sockets lehetővé teszi a felhasználó számára, hogy manipulálja a Sequence Packet Protocol (SPP) vagy az Internet Datagram Protocol (IDP) fejléceket egy csomagon vagy csomagcsoporton, akár egy prototípus fejléc megírásával az elküldendő adatokkal együtt, akár egy alapértelmezett fejléc megadásával, amelyet az összes kimenő adathoz kell használni, és lehetővé teszi a felhasználó számára, hogy megkapja a fejléceket a bejövő csomagokon.
mi a következő lépés?
a következő néhány fejezet célja, hogy megerősítse az alapokat, és előkészítse az alapokat, mielőtt a Socket segítségével szerver-és kliens programokat írhat. Ha közvetlenül szeretne ugrani, hogy megtudja, hogyan kell írni egy kliens és szerver programot, akkor megteheti, de nem ajánlott. Erősen ajánlott, hogy lépésről lépésre haladjon, és töltse ki ezeket a kezdeti néhány fejezetet, hogy elkészítse a bázisát, mielőtt továbblépne a programozáshoz.