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