Movatterモバイル変換


[0]ホーム

URL:


man7.org > Linux >man-pages

Linux/UNIX system programming training


connect(2) — Linux manual page

NAME |LIBRARY |SYNOPSIS |DESCRIPTION |RETURN VALUE |ERRORS |STANDARDS |HISTORY |NOTES |EXAMPLES |SEE ALSO |COLOPHON

connect(2)                 System Calls Manualconnect(2)

NAME        top

       connect - initiate a connection on a socket

LIBRARY        top

       Standard C library (libc,-lc)

SYNOPSIS        top

#include <sys/socket.h>int connect(intsockfd, const struct sockaddr *addr,socklen_taddrlen);

DESCRIPTION        top

       Theconnect() system call connects the socket referred to by the       file descriptorsockfd to the address specified byaddr.  Theaddrlen argument specifies the size ofaddr.  The format of the       address inaddr is determined by the address space of the socketsockfd; seesocket(2) for further details.       If the socketsockfd is of typeSOCK_DGRAM, thenaddr is the       address to which datagrams are sent by default, and the only       address from which datagrams are received.  If the socket is of       typeSOCK_STREAMorSOCK_SEQPACKET, this call attempts to make a       connection to the socket that is bound to the address specified byaddr.       Some protocol sockets (e.g., UNIX domain stream sockets) may       successfullyconnect() only once.       Some protocol sockets (e.g., datagram sockets in the UNIX and       Internet domains) may useconnect() 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 thesa_family member       ofsockaddr set toAF_UNSPEC; thereafter, the socket can be       connected to another address.  (AF_UNSPECis supported since Linux       2.2.)

RETURN VALUE        top

       If the connection or binding succeeds, zero is returned.  On       error, -1 is returned, anderrno is set to indicate the error.

ERRORS        top

       The following are general socket errors only.  There may be other       domain-specific error codes.EACCESFor UNIX domain sockets, which are identified by pathname:              Write permission is denied on the socket file, or search              permission is denied for one of the directories in the path              prefix.  (See alsopath_resolution(7).)EACCESEPERMThe user tried to connect to a broadcast address without              having the socket broadcast flag enabled or the connection              request failed because of a local firewall rule.EACCESIt 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              Local address is already in use.EADDRNOTAVAIL              (Internet domain sockets) The socket referred to bysockfd              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 inip(7).EAFNOSUPPORT              The passed address didn't have the correct address family              in itssa_family field.EAGAINFor 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              The socket is nonblocking and a previous connection attempt              has not yet been completed.EBADFsockfd is not a valid open file descriptor.ECONNREFUSED              Aconnect() on a stream socket found no one listening on              the remote address.EFAULTThe socket structure address is outside the user's address              space.EINPROGRESS              The socket is nonblocking and the connection cannot be              completed immediately.  (UNIX domain sockets failed withEAGAINinstead.)  It is possible toselect(2) orpoll(2)              for completion by selecting the socket for writing.  Afterselect(2) indicates writability, usegetsockopt(2) to read              theSO_ERRORoption at levelSOL_SOCKETto determine              whetherconnect() completed successfully (SO_ERRORis zero)              or unsuccessfully (SO_ERRORis one of the usual error codes              listed here, explaining the reason for the failure).EINTRThe system call was interrupted by a signal that was              caught; seesignal(7).EISCONN              The socket is already connected.ENETUNREACH              Network is unreachable.ENOTSOCK              The file descriptorsockfd 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 while attempting connection.  The server may be too              busy to accept new connections.  Note that for IP sockets              the timeout may be very long when syncookies are enabled on              the server.

STANDARDS        top

       POSIX.1-2008.

HISTORY        top

       POSIX.1-2001, SVr4, 4.4BSD, (connect() first appeared in 4.2BSD).

NOTES        top

       Ifconnect() fails, consider the state of the socket as       unspecified.  Portable applications should close the socket and       create a new one for reconnecting.

EXAMPLES        top

       An example of the use ofconnect() is shown ingetaddrinfo(3).

SEE ALSO        top

accept(2),bind(2),getsockname(2),listen(2),socket(2),path_resolution(7),selinux(8)

COLOPHON        top

       This page is part of theman-pages (Linux kernel and C library       user-space interface documentation) project.  Information about       the project can be found at        ⟨https://www.kernel.org/doc/man-pages/⟩.  If you have a bug report       for this manual page, see       ⟨https://git.kernel.org/pub/scm/docs/man-pages/man-pages.git/tree/CONTRIBUTING⟩.       This page was obtained from the tarball man-pages-6.15.tar.gz       fetched from       ⟨https://mirrors.edge.kernel.org/pub/linux/docs/man-pages/⟩ on       2025-08-11.  If you discover any rendering problems in this HTML       version of the page, or you believe there is a better or more up-       to-date source for the page, or you have corrections or       improvements to the information in this COLOPHON (which isnot       part of the original manual page), send a mail to       man-pages@man7.orgLinux man-pages 6.15            2025-05-17connect(2)

Pages that refer to this page:telnet-probe(1)accept(2)bind(2)getpeername(2)io_uring_enter2(2)io_uring_enter(2)listen(2)recv(2)select(2)select_tut(2)send(2)shutdown(2)socket(2)socketcall(2)syscalls(2)write(2)getaddrinfo(3)io_uring_prep_connect(3)ldap_get_option(3)rtime(3)sockaddr(3type)ldap.conf(5)slapd-asyncmeta(5)slapd-ldap(5)slapd-meta(5)ddp(7)ip(7)landlock(7)netlink(7)packet(7)sctp(7)signal(7)signal-safety(7)sock_diag(7)socket(7)tcp(7)udp(7)unix(7)vsock(7)



HTML rendering created 2025-09-06 byMichael Kerrisk, author ofThe Linux Programming Interface.

For details of in-depthLinux/UNIX system programming training courses that I teach, lookhere.

Hosting byjambit GmbH.

Cover of TLPI


[8]ページ先頭

©2009-2025 Movatter.jp