Berkeley sockets

Technology
12 hours ago
8
4
2
Avatar
Author
Albert Flores

Berkeley sockets je programové rozhraní pro komunikaci mezi procesy v síťové vrstvě operačního systému. Toto rozhraní, které bylo vyvinuto na Kalifornské univerzitě v Berkeley, umožňuje procesům komunikovat prostřednictvím protokolů TCP/IP na internetu nebo jiných síťových protokolů. Prostřednictvím Berkeley sockets lze provádět různé operace, jako je navazování spojení, přijímání a odesílání dat. Toto rozhraní je jedním z nejčastěji používaných pro síťovou komunikaci v programování.

Berkeley sockets (nebo také BSD sockets) jsou v informatice název počítačové knihovny disponující API pro internetové sockety a Unix domain sockety, které jsou používány pro meziprocesovou komunikaci (IPC).

Historie

BSD sockets se poprvé objevily v operačním systému Unix BSD verze 4. 2, který byl uvolněn v roce 1983. +more Aktuálně je implementace BSD sockets dostupná v každém moderním operačním systému a jedná se tak o standard v rámci připojování k Internetu.

C a další programovací jazyky

API BSD sosckets je psáno v jazyce C. Dostupné je i v dalších jazycích, nicméně i tyto implementace vycházejí většinou z implementace pro jazyk C.

Hlavičkové soubory

Rozhraní Berkeley sockets je definováno v několika hlavičkových souborech. Jména a obsah souborů se může mírně lišit dle implementace, obecně jsou to ale tyto soubory:

: Základní funkce a datové struktury BSD sockets. : Adresy AF INET a AF INET6 a k nim odpovídající protokoly PF_INET and PF_INET6. +more Používají se běžně na internetu a obsahují IP adresy a čísla portů TCP a UDP. : Skupina adres PF_UNIX/PF_LOCAL. Používá se pro lokální komunikaci v rámci jednoho stroje. : Funkce pro manipulaci s číselnými IP adresami. : Funkce pro překlad jmen protokolů a jmen hostů do jejich číselné podoby. Využívá k tomu lokální data i DNS.

Funkce socket API

Příklad ustavení spojení s využitím BSD sockets. +more Níže je uveden výpis funkcí, které nabízí API BSD sockets: * socket vytváří nový socket daného typu, identifikovaný celým číslem, s alokovanými systémovými prostředky. * bind je obvykle používán na straně serveru a typicky spojuje lokální port s IP adresou. * listen se používá na straně serveru uvádí TCP socket do stavu listen. * connect se používá na straně klienta a přiřazuje volný lokální port k socketu. V případě TCP socketu vytvoří nové TCP spojení. * accept se používá na straně serveru. Potvrzuje příchozí požadavek na ustavení nového TCP spojení od vzdáleného klienta a vytváří nový socket. * send a recv, nebo write a read, nebo sendto a recvfrom, se používají pro odesílání a přijímání dat z/na vzdálený socket. * close požádá systém o uvolnění prostředků, které měl socket alokované. V případě TCP je spojení přerušeno. * gethostbyname a gethostbyaddr se používají pro vzájemný překlad jmen hostů a adres. Podporováno je pouze IPv4. * select je využíván k čekání, než bude socket nebo seznam socketů připraven. * poll se používá ke kontrole stavu socketu ze skupiny socketů. Skupina může být kontrolována, zda je možné do některého socketu zapsat, číst z něj, nebo zda nenastala nějaká chyba. * getsockopt umožňuje získat aktuální stav dané vlastnosti socketu. * setsockopt umožňuje nastavit hodnotu dané vlastnosti socketu.

Externí odkazy

https://www.ipv6.cz/BSD_sockets_-_%C3%9Avod * http://www.cs.vsb.cz/grygarek/LAN/sockets.html * http://www.earchiv.cz/a93/a315c110.php3 * http://manned.org/socket/dbe8b1f8

Kategorie:Počítačové sítě

5 min read
Share this post:
Like it 8

Leave a Comment

Please, enter your name.
Please, provide a valid email address.
Please, enter your comment.
Enjoy this post? Join Cesko.wiki
Don’t forget to share it
Top