CONNECT(3N-SVR4) RISC/os Reference Manual CONNECT(3N-SVR4)
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 com-
munications 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 fam-
ily.
EADDRNOTAVAIL The specified address is not available
on the remote machine.
EAFNOSUPPORT Addresses in the specified address fam-
ily cannot be used with this socket.
Printed 11/19/92 Page 1
CONNECT(3N-SVR4) RISC/os Reference Manual CONNECT(3N-SVR4)
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(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 con-
nection cannot be completed immediately.
It is possible to select(3N) for comple-
tion by selecting the socket for writ-
ing. 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 previ-
ous 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 exam-
ple, 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
Page 2 Printed 11/19/92
CONNECT(3N-SVR4) RISC/os Reference Manual CONNECT(3N-SVR4)
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 com-
ponent of the path prefix of the path-
name 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).
Printed 11/19/92 Page 3