bionic (2) connect.2.gz

Provided by: manpages-pl-dev_0.7-1_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/.