    NAME
           sendto - send a message from a socket

    SYNOPSIS
           #include <network.h>

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

    DESCRIPTION
           Sendto is used to transmit  a  message
           to  another socket.

           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.

           When  the message does not fit into the send buffer of the
           socket, send normally blocks, unless the socket  has  been
           placed  in non-blocking I/O mode.  In non-blocking mode it
           would return EAGAIN in this case.  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 */
                  #define MSG_DONTWAIT      0x40    /* don't block */
                  #define MSG_NOSIGNAL      0x2000  /* don't raise SIGPIPE */

           MSG_OOB
                  Sends out-of-band data on sockets that support this
                  notion (e.g.  SOCK_STREAM); the underlying protocol
                  must also support out-of-band data.

           MSG_DONTROUTE
                  Bypasses  the  usual routing table lookup and sends
                  the packet directly to the interface  described  by
                  the  destination address. This is usually used only
                  by diagnostic or routing programs.

           MSG_DONTWAIT
                  Enables non-blocking operation;  if  the  operation
                  would block, EAGAIN is returned.

           MSG_NOSIGNAL
                  Requests  not  to  send SIGPIPE on errors on stream
                  oriented sockets when the other end breaks the con
                  nection. The EPIPE error is still returned.

           See recv(2) for a description of the msghdr structure. You
           may send control information  using  the  msg_control  and
           msg_controllen  members. The maximum control buffer length
           the kernel can process is  limited  by  the  net.core.opt
           mem_max sysctl; see socket(4).

    RETURN VALUES
           The  calls  return the number of characters sent, or -1 if
           an error occurred.

    ERRORS
           These are some standard errors  generated  by  the  socket
           layer.  Additional  errors  may  be generated and returned
           from the underlying protocol modules; see their respective
           manual pages.

           EBADF   An invalid descriptor was specified.

           ENOTSOCK
                   The argument s is not a socket.

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

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

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

           EINTR   A signal occurred.

           ENOMEM  No memory available.

           EINVAL  Invalid argument passed.

           EPIPE   The  local  end has been shut down on a connection
                   oriented socket.  In this case  the  process  will
                   also receive a SIGPIPE unless MSG_NOSIGNAL is set.