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

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)