Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ send(3N) — Dell System V Release 4 Issue 2.2

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

connect(3N)

getsockopt(3N)

recv(3N)

socket(3N)

fcntl(2)

write(2)



send(3N)                         UNIX System V                         send(3N)


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

SYNOPSIS
      #include <sys/types.h>

      int send(int s, char *msg, int len, int flags);

      int sendto(int s, char *msg, int len, int flags, caddrt to,
          int tolen);

      int sendmsg(int s, msghdr *msg, int flags);

DESCRIPTION
      s is a socket created with socket.  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 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.

      No indication of failure to deliver is implicit in a send.  Return values
      of -1 indicate some locally detected errors.

      If no buffer 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 [see fcntl(2)].  The select call may be used to
      determine when it is possible to send more data.

      The flags parameter is formed by ORing one or more of the following:

      MSGOOB   Send out-of-band data on sockets that support this notion. The
                underlying protocol must also support out-of-band data.
                Currently, only SOCKSTREAM sockets created in the AFINET
                address family support out-of-band data.

      MSGDONTROUTE
                The SODONTROUTE option is turned on for the duration of the
                operation.  It is used only by diagnostic or routing programs.

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

RETURN VALUE
      These calls return the number of bytes sent, or -1 if an error occurred.

ERRORS
      The calls fail if:




10/89                                                                    Page 1







send(3N)                         UNIX System V                         send(3N)


      EBADF               s is an invalid descriptor.

      ENOTSOCK            s is a descriptor for a file, not a socket.

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

      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 message was too long.

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

      ENOMEM              There was insufficient user memory available for the
                          operation to complete.

      ENOSR               There were insufficient STREAMS resources available
                          for the operation to complete.

SEE ALSO
      connect(3N), getsockopt(3N), recv(3N), socket(3N).
      fcntl(2), write(2) in the Programmer's Reference Manual.

NOTES
      The type of address structure passed to accept depends on the address
      family.  UNIX domain sockets (address family AFUNIX) require a
      socketaddrun structure as defined in sys/un.h; Internet domain sockets
      (address family AFINET) require a sockaddrin structure as defined in
      netinet/in.h.  Other address families may require other structures.  Use
      the structure appropriate to the address family; cast the structure
      address to a generic caddrt in the call to send and pass the size of the
      structure in the tolen argument.

      See ``The Sockets Interface'' section in the Programmer's Guide:
      Networking Interfaces for details.
















Page 2                                                                    10/89





Typewritten Software • bear@typewritten.org • Edmonds, WA 98026