Copyright (C) 2000-2012 |
GNU Info (libc.info)Socket PairsSocket Pairs ------------ A "socket pair" consists of a pair of connected (but unnamed) sockets. It is very similar to a pipe and is used in much the same way. Socket pairs are created with the `socketpair' function, declared in `sys/socket.h'. A socket pair is much like a pipe; the main difference is that the socket pair is bidirectional, whereas the pipe has one input-only end and one output-only end (Note: Pipes and FIFOs). - Function: int socketpair (int NAMESPACE, int STYLE, int PROTOCOL, int FILEDES[2]) This function creates a socket pair, returning the file descriptors in `FILEDES[0]' and `FILEDES[1]'. The socket pair is a full-duplex communications channel, so that both reading and writing may be performed at either end. The NAMESPACE, STYLE and PROTOCOL arguments are interpreted as for the `socket' function. STYLE should be one of the communication styles listed in Note: Communication Styles. The NAMESPACE argument specifies the namespace, which must be `AF_LOCAL' (Note: Local Namespace); PROTOCOL specifies the communications protocol, but zero is the only meaningful value. If STYLE specifies a connectionless communication style, then the two sockets you get are not _connected_, strictly speaking, but each of them knows the other as the default destination address, so they can send packets to each other. The `socketpair' function returns `0' on success and `-1' on failure. The following `errno' error conditions are defined for this function: `EMFILE' The process has too many file descriptors open. `EAFNOSUPPORT' The specified namespace is not supported. `EPROTONOSUPPORT' The specified protocol is not supported. `EOPNOTSUPP' The specified protocol does not support the creation of socket pairs. automatically generated by info2www version 1.2.2.9 |