Museum

Home

Lab Overview

Retrotechnology Articles

⇒ Online Manual

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

accept(3N)

connect(3N)

getsockname(3N)

socket(3N)





   connect(3N)                                                     connect(3N)


   NAME
         connect - initiate a connection on a socket

   SYNOPSIS
         #include <sys/types.h>
         #include <sys/socket.h>

         connect(s, name, namelen)
         int s;
         struct sockaddr *name;
         int namelen;

   DESCRIPTION
         The parameter s is a socket.  If it is of type SOCK_DGRAM, connect()
         specifies the peer with which the socket is to be associated; this
         address is the address to which datagrams are to be sent if a
         receiver is not explicitly designated; it is the only address from
         which datagrams are to be received.  If the socket s is of type
         SOCK_STREAM, connect() attempts to make a connection to another
         socket.  The other socket is specified by name.  name is an address
         in the communications space of the socket.  Each communications space
         interprets the name parameter in its own way. If s is not bound, then
         it will be bound to an address selected by the underlying transport
         provider.  Generally, stream sockets may successfully connect() only
         once; datagram sockets may use connect() multiple times to change
         their association.  Datagram sockets may dissolve the association by
         connecting to a null address.

   RETURN VALUE
         If the connection or binding succeeds, then 0 is returned.  Otherwise
         a -1 is returned and a more specific error code is stored in errno.

   ERRORS
         The call fails if:

         EBADF               s is not a valid descriptor.

         ENOTSOCK            s is a descriptor for a file, not a socket.

         EINVAL              namelen is not the size of a valid address for
                             the specified address family.

         EADDRNOTAVAIL       The specified address is not available on the
                             remote machine.

         EAFNOSUPPORT        Addresses in the specified address family cannot
                             be used with this socket.

         EISCONN             The socket is already connected.




   7/91                                                                 Page 1









   connect(3N)                                                     connect(3N)


         ETIMEDOUT           Connection establishment timed out without
                             establishing a connection.

         ECONNREFUSED        The attempt to connect was forcefully rejected.
                             The calling program should close(2) the socket
                             descriptor, and issue another socket(3N) call to
                             obtain a new descriptor before attempting another
                             connect() call.

         ENETUNREACH         The network is not reachable from this host.

         EADDRINUSE          The address is already in use.

         EINPROGRESS         The socket is non-blocking and the connection
                             cannot be completed immediately.  It is possible
                             to select(3N) for completion by selecting the
                             socket for writing.  However, this is only
                             possible if the socket STREAMS module is the
                             topmost module on the protocol stack with a write
                             service procedure.  This will be the normal case.

         EALREADY            The socket is non-blocking and a previous
                             connection attempt has not yet been completed.

         EINTR               The connection attempt was interrupted before any
                             data arrived by the delivery of a signal.

         ENOTSOCK            The file referred to by name is not a socket.

         EPROTOTYPE          The file referred to by name is a socket of a
                             type other than type s (for example, s is a
                             SOCK_DGRAM socket, while name refers to a
                             SOCK_STREAM socket).

         ENOSR               There were insufficient STREAMS resources
                             available to complete the operation.

         The following errors are specific to connecting names in the UNIX
         domain. These errors may not apply in future versions of the UNIX IPC
         domain.

         ENOTDIR             A component of the path prefix of the pathname in
                             name is not a directory.

         ENOENT              A component of the path prefix of the pathname in
                             name does not exist.

         ENOENT              The socket referred to by the pathname in name
                             does not exist.




   Page 2                                                                 7/91









   connect(3N)                                                     connect(3N)


         EACCES              Search permission is denied for a component of
                             the path prefix of the pathname in name.

         ELOOP               Too many symbolic links were encountered in
                             translating the pathname in name.

         EIO                 An I/O error occurred while reading from or
                             writing to the file system.

   SEE ALSO
         accept(3N), connect(3N), getsockname(3N), socket(3N).










































   7/91                                                                 Page 3





Typewritten Software • bear@typewritten.org • Edmonds, WA 98026