From Wikipedia, the free encyclopedia
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).
BSD sockets se poprvé objevily v operačním systému Unix BSD verze 4.2, který byl uvolněn v roce 1983. 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.
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.
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:
<sys/socket.h>
<netinet/in.h>
<sys/un.h>
<arpa/inet.h>
<netdb.h>
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.Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.