Provided by: manpages-cs_0.18.20090209-1_all bug

JMÉNO

       socket - vytvoř soket

SYNTAXE

       #include <sys/types.h>
       #include <sys/socket.h>

       int socket(int domain, int type, int protocol);

POPIS

       Socket vytvoří soket a vrátí jeho deskriptor.

       Parametr   domain   specifikuje  jmenný  prostor,  ve  kterém  se  bude
       komunikace odehrávat; tím je zvolena i rodina  protokolů,  které  mohou
       být   použity.  Tyto  rodiny  jsou  definovány  v  hlavičkovém  souboru
       sys/socket.h.  V současné době jsou podporovány tyto formáty:

              AF_UNIX  (interní protokol UNIXu)

              AF_INET  (Internetový jmenný prostor)

              AF_ISO   (protokoly ISO)

              AF_NS    (protokoly Xerox Network Systems)

              AF_IMPLINK
                       (IMP "host at IMP" link layer)

       Soket má typ type, který specifikuje komunikační styl. Podporované typy
       jsou:

              SOCK_STREAM
              SOCK_DGRAM
              SOCK_RAW
              SOCK_SEQPACKET
              SOCK_RDM

       A SOCK_STREAM poskytuje sekvenční, spolehlivou a dvoustrannou proudovou
       komunikaci.  Může být podporován mechanismus přenosu  out-of-band  dat.
       SOCK_DGRAM  soket podporuje datagramy (nespojované, nespolehlivé zprávy
       pevné (typicky malé) maximální délky).  SOCK_SEQPACKET soket  poskytuje
       sekvenční,  spolehlivý,  dvojstranný  přenos  dat  pro  datagramy pevné
       maximální délky; konzument může číst tato data voláním jádra. Tento typ
       je  v  současné době implementován pouze pro AF_NS.  SOCK_RAW poskytuje
       přístup k interním síťovým  protokolům  a  rozhraním.   Typy  SOCK_RAW,
       který  je  k  dispozici  pouze  superuživateli  a  SOCK_RDM,  který  je
       plánován, ale ještě není implementován, zde nejsou popsány.

       Argument protocol specifikuje, který konkrétní protokol má být  použit.
       Normálně  existuje  pouze  jeden  protokol, který se dá použít u soketu
       konkrétního typu a dané rodiny protokolů. Ale je samozřejmě možné,  aby
       existovalo  protokolů  více. Číslo protokolu závisí na použitém jmenném
       prostoru, bližší informace naleznete v protocols(5).

       Sokety typu SOCK_STREAM jsou plně duplexní proudy dat  podobné  rourám.
       Proudový  soket  musí  být  spojen  před  tím,  než  přijme  nebo pošle
       jakákoliv data. Spojení s jiným soketem se provádí voláním  connect(2).
       Jestliže  bylo spojení navázáno, mohou být přenášena data pomocí volání
       read(2) a write(2) nebo některou variantou volání  send(2)  a  recv(2).
       Je-li  sezení  ukončeno,  můžete  zavolat funkci close(2).  Out-of-band
       data mohou být poslána. Konkrétní informace najdete v send(2).  Out-of-
       band data mohou být přijata voláním recv(2).

       Komunikační protokoly, které implementují SOCK_STREAM zaručují, že data
       se neztratí a ani nebudou duplikována. Je-li část dat, pro kterou je  k
       dispozici  prostor  ve vyrovnávací paměti, nedoručena po rozumnou dobu,
       je spojení prohlášeno za přerušené a volání budou vracet chyby  (-1)  a
       globální proměnná errno bude nastavena na ETIMEDOUT .

       Některé protokoly uchovávají sokety v činnosti tím, že přibližně každou
       minutu posílají packet, nevyskytuje-li se jiná aktivita. Neobjeví-li se
       odpověď po delší dobu (např. 5 minut), je opět indikována chyba. Signál
       SIGPIPE je poslán procesu, jestliže proces pošle  data  do  "rozbitého"
       proudu.   To  způsobí,  že  "naivní"  procesy,  které neobsluhují tento
       signál skončí.

       SOCK_SEQPACKET sokety používají stejná volání jako SOCK_STREAM  sokety.
       Jediným  rozdílem je, že volání read(2) vrací pouze požadované množství
       dat a ostatní data budou zničena.

       SOCK_DGRAM  a  SOCK_RAW  sokety  povolují  posílání  paketů   adresátům
       specifikovaným  ve  volání  send(2).   Datagramy jsou obvykle přijímány
       pomocí volání recvfrom(2), které vrací další datagram s jeho návratovou
       adresou.

       Volání  fcntl(2)  může  být  použito  ke specifikování skupiny procesů,
       které obdrží signál SIGURG při  příchodu  out-of-band  dat.  Může  také
       povolit   neblokující  vstupně-výstupní  operace  případně  asynchronní
       hlášení vstupně-výstupních událostí signálem SIGIO.

       Operace  soketu  jsou  řízeny   volbami   soketů.   Tyto   volby   jsou
       specifikovány  v  hlavičkovém  souboru  sys/socket.h.   Setsockopt(2) a
       getsockopt(2) se používají pro jejich  nastavení  a  k  získání  jejich
       aktuálního stavu.

NÁVRATOVÁ HODNOTA

       -1  je  vrácena,  jestliže  nastala  chyba,  jinak je vrácen deskriptor
       soketu.

CHYBY

       EPROTONOSUPPORT
               Komunikační styl nebo protokol není  podporován  specifikovaným
               jmenným prostorem.

       EMFILE  Tabulka deskriptorů procesu je zaplněna.

       ENFILE  Tabulka otevřených souborů systému je zaplněna.

       EACCESS Nemáte   právo   vytvořit  soket  specifikovaného  typu  a/nebo
               protokolu.

       ENOBUFS Nedostatek vyrovnávacích pamětí.  Soket  nemůže  být  vytvořen,
               dokud nedojde k uvolnění zdrojů.

SPLŇUJE STANDARDY

       4.4BSD   (volání  jádra  socket  se  objevilo  v  4.2BSD).  Obvykle  je
       kompatibilní s ne-BSD  systémy,  které  podporují  BSD  Sokety  (včetně
       variant Systému V).

DALŠÍ INFORMACE

       accept(2),   bind(2),   connect(2),   getprotoent(3),   getsockname(2),
       getsockopt(2),  ioctl(2),  listen(2),  read(2),   recv(2),   select(2),
       send(2), shutdown(2), socketpair(2), write(2)

       "An  Introductory 4.3 BSD Interprocess Communication Tutorial" je znovu
       vydáno v UNIX Programmer's Supplementary Documents Volume 1

       "BSD Interprocess  Communication  Tutorial"  je  znovu  vydáno  v  UNIX
       Programmer's Supplementary Documents Volume 1

VAROVÁNÍ

       Překlad   je  pravděpodobně  zastaralý.  Pokud  chcete  pomoci  s  jeho
       aktualizací, zamiřte na http://man-pages-cs-wiki.homelinux.net/