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

FreeBSD Manual Pages

  
 
  

home | help
send(3SOCKET)		   Sockets Library Functions		 send(3SOCKET)

NAME
       send, sendto, sendmsg - send a message from a socket

SYNOPSIS
       cc [ flag ... ] file ...	-lsocket  -lnsl	[ library ... ]
       #include	<sys/types.h>
       #include	<sys/socket.h>

       ssize_t send(int	s, const void *msg, size_t len,	int flags);

       ssize_t	sendto(int  s,	const  void *msg, size_t len, int flags, const
       struct sockaddr *to, int	 tolen);

       ssize_t sendmsg(int s, const struct msghdr *msg,	int flags);

DESCRIPTION
       send(), sendto(), and sendmsg() are used	to transmit a message  to  an-
       other  transport	 end-point. send() may be used only when the socket is
       in a connected state, while sendto() and	sendmsg() may be used  at  any
       time. s is a socket created with	socket(3SOCKET).

       The  address  of	 the  target  is given by to with tolen	specifying its
       size. The length	of the message is given	by len.	If the message is  too
       long to pass atomically through the underlying protocol,	then the error
       EMSGSIZE	is returned, and the message is	not transmitted.

       A return	value of -1 indicates locally detected errors  only.  It  does
       not implicitly mean the message was not delivered.

       If  the	socket does not	have enough buffer space available to hold the
       message being sent, send() blocks, unless the socket has	been placed in
       non-blocking  I/O  mode	(see fcntl(2)).	The select(3C) or poll(2) call
       may be used to determine	when it	is possible to send more data.

       The flags parameter is formed from the bitwise OR of zero  or  more  of
       the following:

       MSG_OOB
	     Send "out-of-band"	data on	sockets	that support this notion.  The
	     underlying	protocol must also support  "out-of-band"  data.  Only
	     SOCK_STREAM  sockets  created  in	the AF_INETand AF_INET address
	     families support out-of-band data.

       MSG_DONTROUTE
	     The SO_DONTROUTE option is	turned on for the duration of the  op-
	     eration. It is used only by diagnostic or routing programs.

       See recv(3SOCKET) for a description of the msghdr structure.

RETURN VALUES
       These  calls  return  the  number  of bytes sent, or -1 if an error oc-
       curred.

ERRORS
       The send(), sendto(), and sendmsg() functions will fail if:

       EBADF s is an invalid file descriptor.

       EINTR The operation was interrupted by delivery of a signal before  any
	     data could	be buffered to be sent.

       EMSGSIZE
	     The socket	requires that message be sent atomically, and the mes-
	     sage was too long.

       ENOMEM
	     There was insufficient memory available to	 complete  the	opera-
	     tion.

       ENOSR There were	insufficient STREAMS resources available for the oper-
	     ation to complete.

       ENOTSOCK
	     s is not a	socket.

       EWOULDBLOCK
	     The socket	is marked non-blocking	and  the  requested  operation
	     would block.

       The send() and sendto() functions will fail if:

       EINVAL
	     The len argument overflowed a ssize_t.

       The sendto() function will fail if:

       EINVAL
	     tolen  is	not  the size of a valid address for the specified ad-
	     dress family.

       The sendmsg() function will fail	if:

       EINVAL
	     Either the	msg_iovlen member of the msghdr	structure  pointed  to
	     by	 msg  was  less	 than or equal to 0, or	the sum	of the iov_len
	     values in the msg_iov array overflowed a ssize_t.

       EINVAL
	     Either one	of the iov_len values in the msg_iov array  member  of
	     the  msghdr  structure pointed to by msg was negative, or the sum
	     of	the iov_len values in the msg_iov array	overflowed a ssize_t.

       The send() function will	fail if:

       EPIPE The socket	is shut	down for writing, or the socket	is connection-
	     mode  and	is  no	longer	connected.  In the latter case,	if the
	     socket is of type SOCK_STREAM, the	SIGPIPE	signal is generated to
	     the calling process.

ATTRIBUTES
       See attributes(5) for descriptions of the following attributes:

       +-----------------------------+-----------------------------+
       |      ATTRIBUTE	TYPE	     |	    ATTRIBUTE VALUE	   |
       +-----------------------------+-----------------------------+
       |MT-Level		     |Safe			   |
       +-----------------------------+-----------------------------+

SEE ALSO
       fcntl(2),  poll(2),  write(2),  connect(3SOCKET),  getsockopt(3SOCKET),
       recv(3SOCKET),	select(3C),   socket(3HEAD),   socket(3SOCKET),	   at-
       tributes(5)

SunOS 5.9			  24 Jan 2002			 send(3SOCKET)

NAME | SYNOPSIS | DESCRIPTION | RETURN VALUES | ERRORS | ATTRIBUTES | SEE ALSO

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

home | help