connect(3N) connect(3N)
NAME
connect - initiate a connection on a socket
SYNOPSIS
cc [options] file -lsocket -lnsl
#include <sys/types.h>
#include <sys/socket.h>
int connect(int s, const struct sockaddr *name, size_t 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.
Files
/usr/lib/locale/locale/LC_MESSAGES/uxns1
Return Values
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 Either s is a descriptor for a file, not a
socket, or the file referred to by name is
not a socket.
EINVAL namelen is not the size of a valid address
for the specified address family.
Copyright 1994 Novell, Inc. Page 1
connect(3N) connect(3N)
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.
ETIMEDOUT Connection establishment timed out without
establishing a connection.
ECONNREFUSED The attempt to connect was forcefully
rejected. The calling program should
close the socket descriptor, and issue
another socket 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 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.
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).
Copyright 1994 Novell, Inc. Page 2
connect(3N) connect(3N)
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.
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.
REFERENCES
accept(3N), close(2), connect(3N), getsockname(3N), socket(3N)
NOTICES
The type of address structure passed to connect depends on the
address family. UNIX domain sockets (address family AF_UNIX)
require a socketaddr_un structure as defined in sys/un.h;
Internet domain sockets (address family AF_INET) require a
sockaddr_in structure as defined in netinet/in.h. Other
address families may require other structures. Use the
structure appropriate to the address family; cast the
structure address to a generic caddr_t in the call to connect
and pass the size of the structure in the length argument.
Copyright 1994 Novell, Inc. Page 3