NAME
socket - Creates an end point for communication and returns
a descriptor
SYNOPSIS
#include <sys/types.h>
#include <sys/socket.h>
int socket (
int addr_family,
int type,
int protocol );
PARAMETERS
addr_family
Specifies an address family with which addresses speci-
fied in later socket operations should be interpreted.
The sys/socket.h file contains the definitions of the
address families. Commonly used families are:
AF_UNIX
UNIX pathnames
AF_INET
ARPA Internet addresses
AF_NS
Xerox Network Software addresses
type Specifies the semantics of communication. The
sys/socket.h file defines the socket types. The fol-
lowing types are supported:
SOCK_STREAM
Provides sequenced, reliable, two-way byte streams
with a transmission mechanism for out-of-band
data.
SOCK_DGRAM
Provides datagrams, which are connectionless mes-
sages of a fixed maximum length.
SOCK_RAW
Provides access to internal network protocols and
interfaces. This type of socket is available only
to a process with superuser privilege.
protocol
Specifies a particular protocol to be used with the
socket. Specifying a protocol of 0 (zero) causes the
socket() function to default to the typical protocol
for the requested type of returned socket.
DESCRIPTION
The socket() function creates a socket of the specified type
in the specified addr_family.
The socket() function returns a descriptor (an integer) that
can be used in later system calls that operate on sockets.
Socket level options control socket operations. The get-
sockopt() and setsockopt() functions are used to get and set
these options, which are defined in the sys/socket.h file.
RETURN VALUES
Upon successful completion, the socket() function returns a
nonnegative integer (the socket descriptor). Otherwise, a
value of -1 is returned and errno is set to indicate the
error.
ERRORS
If the socket() function fails, errno may be set to one of
the following values:
[EAFNOSUPPORT]
The addresses in the specified address family are
not available in the kernel.
[EPROTONOSUPPORT]
The socket in the specified address family is not
supported.
[EMFILE] The per-process descriptor table is full.
[ENOBUFS] Insufficient resources were available in the sys-
tem to complete the call.
[EPERM] The process is attempting to open a raw socket and
does not have superuser privilege.
RELATED INFORMATION
Functions: accept(2), bind(2), connect(2), listen(2),
getsockname(2), getsockopt(2), recv(2), recvfrom(2),
recvmsg(2), send(2), sendto(2), sendmsg(2), setsockopt(2),
shutdown(2), socketpair(2)
Acknowledgement and Disclaimer