socket(2) — System Calls
OSF — Environment_Note_Added
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_familySpecifies an address family with which addresses specified in later socket operations should be interpreted. The sys/socket.h file contains the definitions of the address families. Commonly used families are:
AF_UNIXUNIX pathnames
AF_INETARPA Internet addresses
AF_NSXerox Network Software addresses
typeSpecifies the semantics of communication. The sys/socket.h file defines the socket types. The following 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 messages 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.
protocolSpecifies 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 getsockopt() 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 system to complete the call.
[EPERM]The process is attempting to open a raw socket and does not have superuser privilege.
ENVIRONMENT NOTES
This section describes system features that are not generic to OSF/1 but that are provided in this OSF/1 implementation.
Digital Extensions
Errors
If the socket() function fails, errno may be set to one of the following values:
[ENOMEM]The system was unable to allocate kernel memory to increase the process descriptor table.
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)