Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
socket(3HEAD)			    Headers			 socket(3HEAD)

NAME
       socket -	Internet Protocol family

SYNOPSIS
       #include	<sys/socket.h>

DESCRIPTION
       The  <sys/socket.h>  header  defines the	unsigned integral type sa_fam-
       ily_t through typedef.

       The <sys/socket.h> header defines the sockaddr structure	that  includes
       the following members:

       sa_family_t	    sa_family		  /* address family */
       char		    sa_data[]		  /*   socket  address
						  (variable-length
						  data)	*/

       The  <sys/socket.h>  header  defines the	msghdr structure that includes
       the following members:

       void		    *msg_name		  /* optional address */
       size_t		    msg_namelen		  /* size of address */
       struct iovec	    *msg_iov		  /* scatter/gather array */
       int		    msg_iovlen		  /* members in	msg_iov	*/
       void		    *msg_control	  /* ancillary data, see below */
       size_t		    msg_controllen	  /* ancillary data buffer len */
       int		    msg_flags		  /* flags on received message */

       The <sys/socket.h> header defines the cmsghdr structure	that  includes
       the following members:

       size_t		    cmsg_len		  /*  data byte	count, includ-
						  ing hdr */
       int		    cmsg_level		  /* originating protocol */
       int		    cmsg_type		  /* protocol-specific type */

       Ancillary data consists of a sequence of	pairs, each  consisting	 of  a
       cmsghdr	structure  followed  by	a data array.  The data	array contains
       the ancillary data message, and the cmsghdr structure contains descrip-
       tive  information  that	allows	an  application	to correctly parse the
       data.

       The values for cmsg_level will be legal values for the  level  argument
       to the getsockopt() and setsockopt() functions. The  SCM_RIGHTS type is
       supported for level SOL_SOCKET.

       Ancillary  data	is  also  possible   at	  the	socket	 level.	   The
       <sys/socket.h>  header  defines	the  following	macro  for  use	as the
       cmsg_type value when cmsg_level is SOL_SOCKET:

       SCM_RIGHTS
	     Indicates that the	data array contains the	access	rights	to  be
	     sent or received.

       The  <sys/socket.h>  header defines the following macros	to gain	access
       to the data arrays in the ancillary  data  associated  with  a  message
       header:

       CMSG_DATA(cmsg)
	     If	 the  argument is a pointer to a cmsghdr structure, this macro
	     returns an	unsigned character pointer to the data	array  associ-
	     ated with the cmsghdr structure.

       CMSG_NXTHDR(mhdr,cmsg)
	     If	 the first argument is a pointer to a msghdr structure and the
	     second argument is	a pointer to a cmsghdr structure in the	ancil-
	     lary  data,  pointed  to  by the msg_control field	of that	msghdr
	     structure,	this macro returns  a  pointer	to  the	 next  cmsghdr
	     structure,	 or  a null pointer if this structure is the last cms-
	     ghdr in the ancillary data.

       CMSG_FIRSTHDR(mhdr)
	     If	the argument is	a pointer to a msghdr  structure,  this	 macro
	     returns a pointer to the first cmsghdr structure in the ancillary
	     data associated with this msghdr structure, or a null pointer  if
	     there is no ancillary data	associated with	the msghdr structure.

       The  <sys/socket.h>  header  defines the	linger structure that includes
       the following members:

       int		    l_onoff		  /* indicates	whether	 linger
						  option is enabled */
       int		    l_linger		  /* linger time, in seconds */

       The <sys/socket.h> header defines the following macros:

       SOCK_DGRAM
	     Datagram socket

       SOCK_STREAM
	     Byte-stream socket

       SOCK_SEQPACKET
	     Sequenced-packet socket

       The  <sys/socket.h>  header  defines the	following macro	for use	as the
       level argument of setsockopt() and getsockopt().

       SOL_SOCKET
	     Options to	be accessed at socket level, not protocol level.

       The <sys/socket.h> header defines the following macros: for use as  the
       option_name argument in getsockopt() or setsockopt() calls:

       SO_DEBUG
	     Debugging information is being recorded.

       SO_ACCEPTCONN
	     Socket is accepting connections.

       SO_BROADCAST
	     Transmission of broadcast messages	is supported.

       SO_REUSEADDR
	     Reuse of local addresses is supported.

       SO_KEEPALIVE
	     Connections are kept alive	with periodic messages.

       SO_LINGER
	     Socket lingers on close.

       SO_OOBINLINE
	     Out-of-band data is transmitted in	line.

       SO_SNDBUF
	     Send buffer size.

       SO_RCVBUF
	     Receive buffer size.

       SO_ERROR
	     Socket error status.

       SO_TYPE
	     Socket type.

       The  <sys/socket.h>  header defines the following macros	for use	as the
       valid values for	the msg_flags field in the msghdr  structure,  or  the
       flags parameter in recvfrom(), recvmsg(), sendto(), or sendmsg()	calls:

       MSG_CTRUNC
	     Control data truncated.

       MSG_EOR
	     Terminates	a record (if supported by the protocol).

       MSG_OOB
	     Out-of-band data.

       MSG_PEEK
	     Leave received data in queue.

       MSG_TRUNC
	     Normal data truncated.

       MSG_WAITALL
	     Wait for complete message.

       The <sys/socket.h> header defines the following macros:

       AF_UNIX
	     UNIX domain sockets

       AF_INET
	     Internet domain sockets

       The <sys/socket.h> header defines the following macros:

       SHUT_RD
	     Disables further receive operations.

       SHUT_WR
	     Disables further send operations.

       SHUT_RDWR
	     Disables further send and receive operations.

       The  following  are  declared  as functions, and	may also be defined as
       macros:

	      int accept(int socket, struct  sockaddr  *address,  size_t  *ad-
	      dress_len);
	      int  bind(int socket, const struct sockaddr *address, size_t ad-
	      dress_len);
	      int connect(int socket, const struct sockaddr  *address,	size_t
	      address_len);
	      int  getpeername(int  socket,  struct  sockaddr *address,	size_t
	      *address_len);
	      int getsockname(int socket,  struct  sockaddr  *address,	size_t
	      *address_len);
	      int getsockopt(int socket, int level, int	option_name, void *op-
	      tion_value, size_t *option_len);
	      int listen(int socket, int backlog);
	      ssize_t  recv(int	 socket,  void	*buffer,  size_t  length,  int
	      flags);
	      ssize_t  recvfrom(int  socket,  void *buffer, size_t length, int
	      flags, struct sockaddr *address, size_t *address_len);
	      ssize_t recvmsg(int socket, struct msghdr	*message, int flags);
	      ssize_t send(int socket, const void *message, size_t length, int
	      flags);
	      ssize_t  sendmsg(int  socket,  const struct msghdr *message, int
	      flags);
	      ssize_t sendto(int socket, const void *message,  size_t  length,
	      int flags, const struct sockaddr *dest_addr, size_t dest_len);
	      int  setsockopt(int  socket,  int	 level,	int option_name, const
	      void *option_value, size_t option_len);
	      int shutdown(int socket, int how);
	      int socket(int domain, int type, int protocol);
	      int  socketpair(int  domain,  int	 type,	 int   protocol,   int
	      socket_vector[2]);

SEE ALSO
       accept(3SOCKET),	  accept(3XNET),   bind(3SOCKET),   bind(3XNET),  con-
       nect(3SOCKET),	 connect(3XNET),    getpeername(3SOCKET),     getpeer-
       name(3XNET),    getsockname(3SOCKET),	getsockname(3XNET),   getsock-
       opt(3SOCKET),   getsockopt(3XNET),   listen(3SOCKET),	listen(3XNET),
       recv(3SOCKET),	 recv(3XNET),	 recvfrom(3SOCKET),   recvfrom(3XNET),
       recvmsg(3SOCKET),    recvmsg(3XNET),    send(3SOCKET),	  send(3XNET),
       sendmsg(3SOCKET),  sendmsg(3XNET), sendto(3SOCKET), sendto(3XNET), set-
       sockopt(3SOCKET),    setsockopt(3XNET),	  shutdown(3SOCKET),	 shut-
       down(3XNET),  socket(3SOCKET), socket(3XNET), socketpair(3SOCKET) sock-
       etpair(3XNET)

SunOS 5.9			  4 Apr	1997			 socket(3HEAD)

NAME | SYNOPSIS | DESCRIPTION | SEE ALSO

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=socket&sektion=3head&manpath=SunOS+5.9>

home | help