connect(2)

JMÉNO
connect - inicializuj spojení soketu

KNIHOVNA
Standardní knihovna C (libc, -lc)

POUŽITÍ
#include <sys/socket.h>

int connect(int sockfd, const struct sockaddr *addr,
            socklen_t addrlen);

POPIS
Systémové volání connect() připojí soket specifikovaný v sockfd k adrese specifikované v addr. Parametr addrlen udává velikost addr. Formát adresy v addr je dán adresovým prostorem deskriptoru v sockfd. Viz socket(2) pro více detailů.

Parametr sockfd je soket. Je-li jeho typ SOCK_DGRAM, pak je addr jediným místem, odkud a kam budou přijímány, resp. posílány datagramy. Je-li typ soketu SOCK_STREAM, nebo SOCK_SEQPACKET potom se toto volání pokusí navázat spojení se soketem, který je specifikován v addr, což je adresa v jmenném prostoru soketu. Každý jmenný prostor interpretuje adresu v addr.

Some protocol sockets (e.g., UNIX domain stream sockets) may successfully connect() only once.

Some protocol sockets (e.g., datagram sockets in the UNIX and Internet domains) may use connect() multiple times to change their association.

Some protocol sockets (e.g., TCP sockets as well as datagram sockets in the UNIX and Internet domains) may dissolve the association by connecting to an address with the sa_family member of sockaddr set to AF_UNSPEC; thereafter, the socket can be connected to another address. (AF_UNSPEC is supported since Linux 2.2.)

NÁVRATOVÉ HODNOTY
If the connection or binding succeeds, zero is returned. On error, -1 is returned, and errno is set to indicate the error.

CHYBOVÉ STAVY
Tento seznam je pouze všeobecný. Mohou existovat další specifické chyby pro použitý jmenný prostor.

EACCES
    Pro sokety UNIXové domény, které jsou identifikovány jménem: je odmítnuto zapisování do souboru specifikovaného soketem, nebo je odmítnuto právo vyhledávat v adresářích specifikovaných cestou. (Viz path_resolution(7).)

EACCES, EPERM
    Uživatel se pokusil připojit k broadcastové adrese, aniž by měl povolen broadcastový příznak na soketu, nebo požadavek na spojení byl odmítnut kvůli lokálnímu pravidlu firewallu.

EACCES
    It can also be returned if an SELinux policy denied a connection (for example, if there is a policy saying that an HTTP proxy can only connect to ports associated with HTTP servers, and the proxy tries to connect to a different port).

EADDRINUSE
    Adresa je již používána.

EADDRNOTAVAIL
    (Internet domain sockets) The socket referred to by sockfd had not previously been bound to an address and, upon attempting to bind it to an ephemeral port, it was determined that all port numbers in the ephemeral port range are currently in use. See the discussion of /proc/sys/net/ipv4/ip_local_port_range in ip(7).

EAFNOSUPPORT
    Poskytnutá adresa nemá správně specifikovanou rodinu adres v poli sa_family.

EAGAIN
    For nonblocking UNIX domain sockets, the socket is nonblocking, and the connection cannot be completed immediately. For other socket families, there are insufficient entries in the routing cache.

EALREADY
    Soket je neblokující a předchozí pokus o spojení ještě nebyl dokončen.

EBADF
    sockfd is not a valid open file descriptor.

ECONNREFUSED
    A connect() on a stream socket found no one listening on the remote address.

EFAULT
    Adresa soketu je mimo adresový prostor procesu.

EINPROGRESS
    The socket is nonblocking and the connection cannot be completed immediately. (UNIX domain sockets failed with EAGAIN instead.) It is possible to select(2) or poll(2) for completion by selecting the socket for writing. After select(2) indicates writability, use getsockopt(2) to read the SO_ERROR option at level SOL_SOCKET to determine whether connect() completed successfully (SO_ERROR is zero) or unsuccessfully (SO_ERROR is one of the usual error codes listed here, explaining the reason for the failure).

EINTR
    Systémové volání bylo přerušeno doručením signálu. Viz signal(7).

EISCONN
    Soket je již spojen.

ENETUNREACH
    Síť není dosažitelná.

ENOTSOCK
    The file descriptor sockfd does not refer to a socket.

EPROTOTYPE
    The socket type does not support the requested communications protocol. This error can occur, for example, on an attempt to connect a UNIX domain datagram socket to a stream socket.

ETIMEDOUT
    Timeout při pokusu o navázání spojení. Server může být příliš zaneprázdněn a není schopen přijmou další spojení. Vězte, že pro IP sokety může být timeout velmi dlouhý, pokud jsou syncookies povoleny na straně serveru.

STANDARDY
POSIX.1-2008.

HISTORIE
POSIX.1-2001, SVr4, 4.4BSD, (connect() se poprvé objevila ve 4.2BSD).

POZNÁMKY
If connect() fails, consider the state of the socket as unspecified. Portable applications should close the socket and create a new one for reconnecting.

PŘÍKLADY
Příklad použití connect() je v getaddrinfo(3).

DALŠÍ INFORMACE
accept(2), bind(2), getsockname(2), listen(2), socket(2), path_resolution(7), selinux(8)

PŘEKLAD
Překlad této příručky do španělštiny vytvořili Pavel Heimlich <tropikhajma@gmail.com>

Tento překlad je bezplatná dokumentace; Přečtěte si GNU General Public License Version 3 (https://www.gnu.org/licenses/gpl-3.0.html) nebo novější ohledně podmínek autorských práv. Neexistuje ŽÁDNÁ ODPOVĚDNOST.

Pokud narazíte na nějaké chyby v překladu této příručky, pošlete e-mail na adresu translation-team-cs@lists.sourceforge.net.