COHERENT manpages
This page displays the COHERENT manpage for socket() [Create a socket].
List of available manpages
Index
socket() -- Sockets Function (libsocket) Create a socket #include <sys/types.h> #include <sys/socket.h> int socket(domain, type, protocol) int domain, type, protocol; socket() creates a ``socket'' -- that is, an endpoint for communication. It returns a descriptor that uniquely identifies the socket. domain specifies the domain within which communication will take place. This selects the protocol family to be used. These families are defined in <sys/socket.h> Currently, socket() recognizes the following domains: AF_UNIX UNIX internal protocols. AF_INET ARPA Internet protocols. The socket has the indicated type, which specifies the semantics of communication. socket() recogizes the following types: SOCK_STREAM This type provides a byte stream that is sequenced, reliable, two-way, and connection-based. SOCK_DGRAM This type supports ``datagrams'' -- that is, connectionless, unreliable messages of a fixed maximum length. protocol identifies the protocol to be used with the newly created socket. In most instances, a given type of socket supports only one protocol. However, a socket type may support many different protocols, in which case you must specify the one to use. The protocol number to use is particular to the ``communication domain'' in which communication is to take place. Sockets of type SOCK_STREAM are full-duplex byte streams, similar to pipes. A stream socket must be in a connected to another socket (through a call to function connect()) before any data can be sent to it or received on it. Once connected, data can be transferred using the system calls read() and write(). When a session has been completed, invoke the system call close() to close the socket. If all goes well, socket() returns the descriptor of the newly created socket; this is always a positive integer. If something goes wrong, it returns -1 and sets errno to an appropriate value. The following lists the possible errors, by the value to which socket() sets errno: EPROTONOSUPPORT type or protocol is not supported within this domain. EMFILE The per-process descriptor table is full. ENFILE The system file table is full. EACCESS You do not have permission to create a socket of a given type or protocol. ENOBUFS Not enough buffer space is available. The socket cannot be created until sufficient resources are freed. See Also accept(), connect(), libsocket, listen(), read(), write()