Provided by: manpages-pl-dev_0.7-2_all bug

NAZWA

       connect - inicjalizacja połączenia poprzez gniazdo

SKŁADNIA

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

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

OPIS

        Uwaga! To tłumaczenie może być nieaktualne!

       Deskryptor  sockfd  musi  odnosić  się do gniazda.  Jeśli gniazdo jest typu SOCK_DGRAM, to
       adres serv_addr jest adresem, do którego  domyślnie  przesyłane  są  datagramy  i  jedynym
       adresem,  z  którego  datagramy  są  odbierane.  Jeśli  gniazdo  jest typu SOCK_STREAM lub
       SOCK_SEQPACKET, to ta funkcja próbuje nawiązać połączenie z innym gniazdem.  Inne  gniazdo
       jest   podane  jako  serv_addr,  co  jest  adresem  (o  długości  addrlen)  w  przestrzeni
       komunikacyjnej gniazda. Każda z przestrzeni  komunikacyjnych  interpretuje  serv_addr,  po
       swojemu.

       Ogólnie,  gniazda  strumieniowe  (dla  protokołów  połączeniowych)  mogą pomyślnie wykonać
       connect tylko raz; gniazda datagramowe  (dla  protokołów  bezpołączeniowych)  mogą  używać
       connect  wielokrotnie  do  zmiany  swojego przypisania. Gniazda datagramowe mogą zniszczyć
       powiązanie przez łączenie się z adresem, w którym pole  sa_family  struktury  sockaddr  ma
       wartość AF_UNSPEC.

WARTOŚĆ ZWRACANA

       Jeśli połączenie lub przywiązanie uda się, zwracane jest zero. Przy błędzie, zwracane jest
       -1 i odpowiednio ustawiane errno.

BŁĘDY

       Następujące  błędy  to  jedynie  ogólne  błędy  gniazd.  Mogą  występować  również   inne,
       specyficzne dla domeny kody błędów.

       EBADF  Deskryptor nie jest prawidłowym indeksem tablicy deskryptorów.

       EFAULT Adres struktura gniazda znajduje się poza przestrzenią adresową użytkownika.

       ENOTSOCK
              Deskryptor nie jest związany z gniazdem.

       EISCONN
              Gniazdo już jest połączone.

       ECONNREFUSED
              Żaden serwer nie nasłuchuje na zdalnym adresie.

       ETIMEDOUT
              Przeterminowanie próby połączenia. Serwer może być zbyt zajęty, aby przyjmować nowe
              połączenia. Dla gniazd IP czas przeterminowania  może  być  bardzo  długi,  gdy  na
              serwerze włączone są "syncookies".

       ENETUNREACH
              Sieć jest nieosiągalna.

       EADDRINUSE
              Adres lokalny już jest wykorzystywany.

       EINPROGRESS
              Gniazdo  jest  nieblokujące, a połączenie nie może zostać zrealizowane natychmiast.
              Jest możliwe wykonanie select(2) lub poll(2) w celu  dokończenia  poprzez  wybranie
              gniazda   do  zapisu.   Po  tym,  jak  select  wskaże  zapisywalność,  należy  użyć
              getsockopt(2), aby odczytać opcję SO_ERROR z poziomu SOL_SOCKET w celu  określenia,
              czy  connect  zakończyło  się  pomyślnie  (SO_ERROR  będzie zerem) lub niepomyślnie
              (SO_ERROR  będzie  jednym  ze  typowych,   wymienionych   powyżej   kodów   błędów,
              wyjaśniających przyczynę błędu).

       EALREADY
              Gniazdo  jest  nieblokujące,  a poprzednia próba połączenia nie została zakończona.
              EAGAIN Brak wolnych portów lokalnych, lub brak wpisów w buforze  marszrutowym.  Dla
              PF_INET w opisie sysctl net.ipv4.ip_local_port_range w ip(7) opisano, jak zwiększyć
              liczbę portów lokalnych.

       EAFNOSUPPORT
              Przekazany adres miał prawidłowej rodziny adresów w swoim polu sa_family.

       EACCES, EPERM
              Użytkownik próbował  podłączyć  się  do  adresu  rozgłoszeniowego  (broadcast)  bez
              włączonego  znacznika  "broadcast"  dla  gniazda lub też połączenie nie udało się z
              powodu lokalnej reguły firewalla.

ZGODNE Z

       SVr4, 4.4BSD (funkcja connect  pojawiła  się  pierwotnie  w  BSD  4.2).  SVr4  dokumentuje
       dodatkowe  błędy ogólne EADDRNOTAVAIL, EINVAL, EAFNOSUPPORT, EALREADY, EINTR, EPROTOTYPE i
       ENOSR.  Dokumentuje także wiele dodatkowych błędów tutaj nieopisanych.

UWAGA

       Trzeci argument connect jest w rzeczywistości typu int (i tak jest  w  BSD  4.*,  libc4  i
       libc5).   Pewne  zamieszanie  w POSIX doprowadziło jego zmiany na obecny socklen_t.  Szkic
       standardu nie został jeszcze przyjęty, ale glibc2 już jest z nim zgodne i zawiera  również
       socklen_t. Zobacz także accept(2).

USTERKI

       Rozłączanie  gniazda  poprzez  wywołanie  connect  z  adresem  AF_UNSPEC  nie jest jeszcze
       wspierane.

ZOBACZ TAKŻE

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

INFORMACJE O TŁUMACZENIU

       Powyższe tłumaczenie pochodzi z nieistniejącego już Projektu Tłumaczenia  Manuali  i  może
       nie  być  aktualne.  W  razie  zauważenia  różnic  między  powyższym opisem a rzeczywistym
       zachowaniem opisywanego programu lub  funkcji,  prosimy  o  zapoznanie  się  z  oryginalną
       (angielską) wersją strony podręcznika za pomocą polecenia:

              man --locale=C 2 connect

       Prosimy  o  pomoc  w  aktualizacji stron man - więcej informacji można znaleźć pod adresem
       http://sourceforge.net/projects/manpages-pl/.