Provided by: manpages-pl-dev_20060617-3_all bug

NAZWA

       connect - inicjalizacja polczenia poprzez gniazdo

SK/LADNIA

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

       int  connect(int  sockfd,  const  struct sockaddr *serv_addr, socklen_t
       addrlen);

OPIS

       Deskryptor sockfd musi odnosi si do gniazda.  Jeli  gniazdo  jest  typu
       SOCK_DGRAM,  to  adres  serv_addr  jest  adresem,  do  ktorego domylnie
       przesylane s  datagramy  i  jedynym  adresem,  z  ktorego  datagramy  s
       odbierane. Jeli gniazdo jest typu SOCK_STREAM lub SOCK_SEQPACKET, to ta
       funkcja probuje nawiza polczenie z innym gniazdem.  Inne  gniazdo  jest
       podane   jako   serv_addr,  co  jest  adresem  (o  dlugoci  addrlen)  w
       przestrzeni komunikacyjnej gniazda. Kada z przestrzeni  komunikacyjnych
       interpretuje serv_addr, po swojemu.

       Ogolnie,   gniazda  strumieniowe  (dla  protokolow  polczeniowych)  mog
       pomylnie wykona connect tylko raz; gniazda datagramowe (dla  protokolow
       bezpolczeniowych)  mog  uywa  connect  wielokrotnie  do  zmiany swojego
       przypisania. Gniazda datagramowe mog zniszczy powizanie  przez  lczenie
       si  z  adresem,  w  ktorym  pole  sa_family struktury sockaddr ma warto
       AF_UNSPEC.

WARTO ZWRACANA

       Jeli polczenie lub przywizanie uda si, zwracane jest zero. Przy bldzie,
       zwracane jest -1 i odpowiednio ustawiane errno.

B/LDY

       Nastpujce bldy to jedynie ogolne bldy gniazd. Mog wystpowa rownie inne,
       specyficzne dla domeny kody bldow.

       EBADF  Deskryptor nie jest prawidlowym indeksem tablicy deskryptorow.

       EFAULT Adres struktura gniazda znajduje  si  poza  przestrzeni  adresow
              uytkownika.

       ENOTSOCK
              Deskryptor nie jest zwizany z gniazdem.

       EISCONN
              Gniazdo ju jest polczone.

       ECONNREFUSED
              aden serwer nie nasluchuje na zdalnym adresie.

       ETIMEDOUT
              Przeterminowanie  proby polczenia. Serwer moe by zbyt zajty, aby
              przyjmowa nowe polczenia. Dla gniazd  IP  czas  przeterminowania
              moe by bardzo dlugi, gdy na serwerze wlczone s "syncookies".

       ENETUNREACH
              Sie jest nieosigalna.

       EADDRINUSE
              Adres lokalny ju jest wykorzystywany.

       EINPROGRESS
              Gniazdo jest nieblokujce, a polczenie nie moe zosta zrealizowane
              natychmiast. Jest moliwe wykonanie select(2) lub poll(2) w  celu
              dokoczenia  poprzez  wybranie  gniazda  do  zapisu.  Po tym, jak
              select wskae zapisywalno, naley uy  getsockopt(2),  aby  odczyta
              opcj SO_ERROR z poziomu SOL_SOCKET w celu okrelenia, czy connect
              zakoczylo si pomylnie (SO_ERROR  bdzie  zerem)  lub  niepomylnie
              (SO_ERROR  bdzie  jednym  ze typowych, wymienionych powyej kodow
              bldow, wyjaniajcych przyczyn bldu).

       EALREADY
              Gniazdo jest  nieblokujce,  a  poprzednia  proba  polczenia  nie
              zostala  zakoczona.   EAGAIN  Brak wolnych portow lokalnych, lub
              brak wpisow w buforze marszrutowym. Dla PF_INET w opisie  sysctl
              net.ipv4.ip_local_port_range  w ip(7) opisano, jak zwikszy liczb
              portow lokalnych.

       EAFNOSUPPORT
              Przekazany adres mial prawidlowej rodziny adresow w  swoim  polu
              sa_family.

       EACCES, EPERM
              Uytkownik   probowal   podlczy  si  do  adresu  rozgloszeniowego
              (broadcast) bez wlczonego znacznika "broadcast" dla gniazda  lub
              te polczenie nie udalo si z powodu lokalnej reguly firewalla.

ZGODNE Z

       SVr4,  4.4BSD  (funkcja connect pojawila si pierwotnie w BSD 4.2). SVr4
       dokumentuje dodatkowe bldy ogolne EADDRNOTAVAIL, EINVAL,  EAFNOSUPPORT,
       EALREADY,   EINTR,   EPROTOTYPE   i   ENOSR.   Dokumentuje  take  wiele
       dodatkowych bldow tutaj nieopisanych.

UWAGA

       Trzeci argument connect jest w rzeczywistoci typu int (i tak jest w BSD
       4.*,  libc4  i  libc5).   Pewne  zamieszanie  w POSIX doprowadzilo jego
       zmiany  na  obecny  socklen_t.   Szkic  standardu  nie  zostal  jeszcze
       przyjty,  ale  glibc2  ju jest z nim zgodne i zawiera rownie socklen_t.
       Zobacz take accept(2).

USTERKI

       Rozlczanie gniazda poprzez wywolanie connect z  adresem  AF_UNSPEC  nie
       jest jeszcze wspierane.

ZOBACZ TAKE

       accept(2), bind(2), listen(2), socket(2), getsockname(2)

INFORMACJE O T/LUMACZENIU

       Powysze  tlumaczenie  pochodzi z nieistniejcego ju Projektu Tlumaczenia
       Manuali i moe nie by aktualne. W razie zauwaenia ronic  midzy  powyszym
       opisem  a  rzeczywistym  zachowaniem  opisywanego programu lub funkcji,
       prosimy o zapoznanie si z oryginaln (angielsk) wersj strony podrcznika.