Provided by:
manpages-cs_0.18.20090209-3_all 
JM'ENO
socket - vytvo soket
SYNTAXE
#include <sys/types.h>
#include <sys/socket.h>
int socket(int domain, int type, int protocol);
POPIS
Socket vytvoi soket a vrati jeho deskriptor.
Parametr domain specifikuje jmenny prostor, ve kterem se bude
komunikace odehravat; tim je zvolena i rodina protokol, ktere mohou byt
pouity. Tyto rodiny jsou definovany v hlavikovem souboru sys/socket.h.
V souasne dob jsou podporovany tyto formaty:
AF_UNIX (interni protokol UNIXu)
AF_INET (Internetovy jmenny prostor)
AF_ISO (protokoly ISO)
AF_NS (protokoly Xerox Network Systems)
AF_IMPLINK
(IMP "host at IMP" link layer)
Soket ma typ type, ktery specifikuje komunikani styl. Podporovane typy
jsou:
SOCK_STREAM
SOCK_DGRAM
SOCK_RAW
SOCK_SEQPACKET
SOCK_RDM
A SOCK_STREAM poskytuje sekvenni, spolehlivou a dvoustrannou proudovou
komunikaci. Me byt podporovan mechanismus penosu out-of-band dat.
SOCK_DGRAM soket podporuje datagramy (nespojovane, nespolehlive zpravy
pevne (typicky male) maximalni delky). SOCK_SEQPACKET soket poskytuje
sekvenni, spolehlivy, dvojstranny penos dat pro datagramy pevne
maximalni delky; konzument me ist tato data volanim jadra. Tento typ je
v souasne dob implementovan pouze pro AF_NS. SOCK_RAW poskytuje pistup
k internim siovym protokolm a rozhranim. Typy SOCK_RAW, ktery je k
dispozici pouze superuivateli a SOCK_RDM, ktery je planovan, ale jet
neni implementovan, zde nejsou popsany.
Argument protocol specifikuje, ktery konkretni protokol ma byt pouit.
Normaln existuje pouze jeden protokol, ktery se da pouit u soketu
konkretniho typu a dane rodiny protokol. Ale je samozejm mone, aby
existovalo protokol vice. islo protokolu zavisi na pouitem jmennem
prostoru, blii informace naleznete v protocols(5).
Sokety typu SOCK_STREAM jsou pln duplexni proudy dat podobne rouram.
Proudovy soket musi byt spojen ped tim, ne pijme nebo pole jakakoliv
data. Spojeni s jinym soketem se provadi volanim connect(2). Jestlie
bylo spojeni navazano, mohou byt penaena data pomoci volani read(2) a
write(2) nebo nkterou variantou volani send(2) a recv(2). Je-li sezeni
ukoneno, mete zavolat funkci close(2). Out-of-band data mohou byt
poslana. Konkretni informace najdete v send(2). Out-of-band data mohou
byt pijata volanim recv(2).
Komunikani protokoly, ktere implementuji SOCK_STREAM zaruuji, e data se
neztrati a ani nebudou duplikovana. Je-li ast dat, pro kterou je k
dispozici prostor ve vyrovnavaci pamti, nedoruena po rozumnou dobu, je
spojeni prohlaeno za peruene a volani budou vracet chyby (-1) a
globalni promnna errno bude nastavena na ETIMEDOUT .
Nktere protokoly uchovavaji sokety v innosti tim, e piblin kadou minutu
posilaji packet, nevyskytuje-li se jina aktivita. Neobjevi-li se odpov
po deli dobu (nap. 5 minut), je opt indikovana chyba. Signal SIGPIPE je
poslan procesu, jestlie proces pole data do "rozbiteho" proudu. To
zpsobi, e "naivni" procesy, ktere neobsluhuji tento signal skoni.
SOCK_SEQPACKET sokety pouivaji stejna volani jako SOCK_STREAM sokety.
Jedinym rozdilem je, e volani read(2) vraci pouze poadovane mnostvi dat
a ostatni data budou zniena.
SOCK_DGRAM a SOCK_RAW sokety povoluji posilani paket adresatm
specifikovanym ve volani send(2). Datagramy jsou obvykle pijimany
pomoci volani recvfrom(2), ktere vraci dali datagram s jeho navratovou
adresou.
Volani fcntl(2) me byt pouito ke specifikovani skupiny proces, ktere
obdri signal SIGURG pi pichodu out-of-band dat. Me take povolit
neblokujici vstupn-vystupni operace pipadn asynchronni hlaeni vstupn-
vystupnich udalosti signalem SIGIO.
Operace soketu jsou izeny volbami soket. Tyto volby jsou specifikovany
v hlavikovem souboru sys/socket.h. Setsockopt(2) a getsockopt(2) se
pouivaji pro jejich nastaveni a k ziskani jejich aktualniho stavu.
N'AVRATOV'A HODNOTA
-1 je vracena, jestlie nastala chyba, jinak je vracen deskriptor
soketu.
CHYBY
EPROTONOSUPPORT
Komunikani styl nebo protokol neni podporovan specifikovanym
jmennym prostorem.
EMFILE Tabulka deskriptor procesu je zaplnna.
ENFILE Tabulka otevenych soubor systemu je zaplnna.
EACCESS Nemate pravo vytvoit soket specifikovaneho typu a/nebo
protokolu.
ENOBUFS Nedostatek vyrovnavacich pamti. Soket neme byt vytvoen, dokud
nedojde k uvolnni zdroj.
SPLUJE STANDARDY
4.4BSD (volani jadra socket se objevilo v 4.2BSD). Obvykle je
kompatibilni s ne-BSD systemy, ktere podporuji BSD Sokety (vetn variant
Systemu V).
DAL'I 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
vydano v UNIX Programmer's Supplementary Documents Volume 1
"BSD Interprocess Communication Tutorial" je znovu vydano v UNIX
Programmer's Supplementary Documents Volume 1
VAROV'AN'I
Peklad je pravdpodobn zastaraly. Pokud chcete pomoci s jeho
aktualizaci, zamite na http://man-pages-cs-wiki.homelinux.net/