socket

SOCKET(2)               Linux - pÅÃruÄka programátora               SOCKET(2)



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/



BSD Man Page                     4. dubna 1997                       SOCKET(2)