Provided by:
manpages-pl-dev_20060617-3_all 
NAZWA
connect - inicjalizacja polczenia poprzez gniazdo
SK/LADNIA
#include <sys/types.h>
#include <sys/socket.h>
int connect(int sockfd, const struct sockaddr *serv_addr, socklen_t
addrlen);
OPIS
Deskryptor sockfd musi odnosi si do gniazda. Jeli gniazdo jest typu
SOCK_DGRAM, to adres serv_addr jest adresem, do ktorego domylnie
przesylane s datagramy i jedynym adresem, z ktorego datagramy s
odbierane. Jeli gniazdo jest typu SOCK_STREAM lub SOCK_SEQPACKET, to ta
funkcja probuje nawiza polczenie z innym gniazdem. Inne gniazdo jest
podane jako serv_addr, co jest adresem (o dlugoci addrlen) w
przestrzeni komunikacyjnej gniazda. Kada z przestrzeni komunikacyjnych
interpretuje serv_addr, po swojemu.
Ogolnie, gniazda strumieniowe (dla protokolow polczeniowych) mog
pomylnie wykona connect tylko raz; gniazda datagramowe (dla protokolow
bezpolczeniowych) mog uywa connect wielokrotnie do zmiany swojego
przypisania. Gniazda datagramowe mog zniszczy powizanie przez lczenie
si z adresem, w ktorym pole sa_family struktury sockaddr ma warto
AF_UNSPEC.
WARTO ZWRACANA
Jeli polczenie lub przywizanie uda si, zwracane jest zero. Przy bldzie,
zwracane jest -1 i odpowiednio ustawiane errno.
B/LDY
Nastpujce bldy to jedynie ogolne bldy gniazd. Mog wystpowa rownie inne,
specyficzne dla domeny kody bldow.
EBADF Deskryptor nie jest prawidlowym indeksem tablicy deskryptorow.
EFAULT Adres struktura gniazda znajduje si poza przestrzeni adresow
uytkownika.
ENOTSOCK
Deskryptor nie jest zwizany z gniazdem.
EISCONN
Gniazdo ju jest polczone.
ECONNREFUSED
aden serwer nie nasluchuje na zdalnym adresie.
ETIMEDOUT
Przeterminowanie proby polczenia. Serwer moe by zbyt zajty, aby
przyjmowa nowe polczenia. Dla gniazd IP czas przeterminowania
moe by bardzo dlugi, gdy na serwerze wlczone s "syncookies".
ENETUNREACH
Sie jest nieosigalna.
EADDRINUSE
Adres lokalny ju jest wykorzystywany.
EINPROGRESS
Gniazdo jest nieblokujce, a polczenie nie moe zosta zrealizowane
natychmiast. Jest moliwe wykonanie select(2) lub poll(2) w celu
dokoczenia poprzez wybranie gniazda do zapisu. Po tym, jak
select wskae zapisywalno, naley uy getsockopt(2), aby odczyta
opcj SO_ERROR z poziomu SOL_SOCKET w celu okrelenia, czy connect
zakoczylo si pomylnie (SO_ERROR bdzie zerem) lub niepomylnie
(SO_ERROR bdzie jednym ze typowych, wymienionych powyej kodow
bldow, wyjaniajcych przyczyn bldu).
EALREADY
Gniazdo jest nieblokujce, a poprzednia proba polczenia nie
zostala zakoczona. EAGAIN Brak wolnych portow lokalnych, lub
brak wpisow w buforze marszrutowym. Dla PF_INET w opisie sysctl
net.ipv4.ip_local_port_range w ip(7) opisano, jak zwikszy liczb
portow lokalnych.
EAFNOSUPPORT
Przekazany adres mial prawidlowej rodziny adresow w swoim polu
sa_family.
EACCES, EPERM
Uytkownik probowal podlczy si do adresu rozgloszeniowego
(broadcast) bez wlczonego znacznika "broadcast" dla gniazda lub
te polczenie nie udalo si z powodu lokalnej reguly firewalla.
ZGODNE Z
SVr4, 4.4BSD (funkcja connect pojawila si pierwotnie w BSD 4.2). SVr4
dokumentuje dodatkowe bldy ogolne EADDRNOTAVAIL, EINVAL, EAFNOSUPPORT,
EALREADY, EINTR, EPROTOTYPE i ENOSR. Dokumentuje take wiele
dodatkowych bldow tutaj nieopisanych.
UWAGA
Trzeci argument connect jest w rzeczywistoci typu int (i tak jest w BSD
4.*, libc4 i libc5). Pewne zamieszanie w POSIX doprowadzilo jego
zmiany na obecny socklen_t. Szkic standardu nie zostal jeszcze
przyjty, ale glibc2 ju jest z nim zgodne i zawiera rownie socklen_t.
Zobacz take accept(2).
USTERKI
Rozlczanie gniazda poprzez wywolanie connect z adresem AF_UNSPEC nie
jest jeszcze wspierane.
ZOBACZ TAKE
accept(2), bind(2), listen(2), socket(2), getsockname(2)
INFORMACJE O T/LUMACZENIU
Powysze tlumaczenie pochodzi z nieistniejcego ju Projektu Tlumaczenia
Manuali i moe nie by aktualne. W razie zauwaenia ronic midzy powyszym
opisem a rzeczywistym zachowaniem opisywanego programu lub funkcji,
prosimy o zapoznanie si z oryginaln (angielsk) wersj strony podrcznika.