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/.

Linux 2.2                                          1998-10-03                                         CONNECT(2)