send

Hurricane Electric Internet Services: Accounts starting at $9.95/month
Hurricane Electric Internet Services

NAME

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


SYNOPSIS

       #include <sys/types.h>
       #include <sys/socket.h>


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

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

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


DESCRIPTION

       WARNING: This is a BSD man page.   As  of  Linux  0.99.11,
       sendmsg was not implemented.

       Send,  sendto,  and sendmsg are used to transmit a message
       to another socket.  Send may be used only when the  socket
       is  in  a connected state, while sendto and sendmsg may be
       used at any time.

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

       No indication of failure to deliver is implicit in a send.
       Locally detected errors are indicated by a return value of
       -1.

       If no messages space is available at the  socket  to  hold
       the  message to be transmitted, then send normally blocks,
       unless the socket has  been  placed  in  non-blocking  I/O
       mode.  The select(2) call may be used to determine when it
       is possible to send more data.

       The flags parameter may include one or more of the follow-
       ing:

              #define   MSG_OOB        0x1  /* process out-of-band data */
              #define   MSG_DONTROUTE  0x4  /* bypass routing, use direct interface */

       The flag MSG_OOB is used to send out-of-band data on sock-
       ets that support  this  notion  (e.g.   SOCK_STREAM);  the
       underlying  protocol  must  also support out-of-band data.
       MSG_DONTROUTE is usually used only by diagnostic or  rout-
       ing programs.

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


RETURN VALUES

       The  call  returns the number of characters sent, or -1 if
       an error occurred.


ERRORS

       EBADF   An invalid descriptor was specified.

       ENOTSOCK
               The argument s is not a socket.

       EFAULT  An invalid user space address was specified for  a
               parameter.

       EMSGSIZE
               The  socket  requires  that message be sent atomi-
               cally, and the size of the message to be sent made
               this impossible.

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

       ENOBUFS The system was  unable  to  allocate  an  internal
               buffer.   The  operation  may succeed when buffers
               become available.

       ENOBUFS The output queue for a network interface was full.
               This  generally  indicates  that the interface has
               stopped sending, but may be  caused  by  transient
               congestion.


HISTORY

       These function calls appeared in BSD 4.2.


SEE ALSO

       fcntl(2),  recv(2),  select(2),  getsockopt(2), socket(2),
       write(2)
Hurricane Electric Internet Services: Accounts starting at $9.95/month
Hurricane Electric Internet Services
Copyright (C) 1998 Hurricane Electric. All Rights Reserved.