Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ send(3N) — UnixWare 2.01

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

connect(3N)

fcntl(2)

getsockopt(3N)

recv(3N)

socket(3N)

write(2)






       send(3N)                                                    send(3N)


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

       SYNOPSIS
             cc [options] file -lsocket -lnsl
             #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, size_t tolen);
             ssize_t sendmsg(int s, const struct 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:

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

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


                           Copyright 1994 Novell, Inc.               Page 1













      send(3N)                                                    send(3N)


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

         Files
            /usr/lib/locale/locale/LC_MESSAGES/uxnsl

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

      ERRORS
            The calls fail if:

            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.

      REFERENCES
            connect(3N), fcntl(2), getsockopt(3N), recv(3N), socket(3N),
            write(2)

      NOTICES
            The type of address structure passed to accept depends on the
            address family.  UNIX domain sockets (address family AF_UNIX)
            require a sockaddr_un structure as defined in sys/un.h;
            Internet domain sockets (address family AF_INET) require a
            struct sockaddr_in structure as defined in netinet/in.h.
            Other address families may require other structures.  Use the


                          Copyright 1994 Novell, Inc.               Page 2













       send(3N)                                                    send(3N)


             structure appropriate to the address family; cast the
             structure address to a generic caddr_t in the call to send and
             pass the size of the structure in the tolen argument.













































                           Copyright 1994 Novell, Inc.               Page 3








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