Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

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

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

bind(3N)

connect(3N)

listen(3N)

socket(3N)

netconfig(4)



accept(3N)                       UNIX System V                       accept(3N)


NAME
      accept - accept a connection on a socket

SYNOPSIS
      #include <sys/types.h>

      int accept(int s, caddrt addr, int *addrlen);

DESCRIPTION
      The argument s is a socket that has been created with socket and bound to
      an address with bind, and that is listening for connections after a call
      to listen.  accept extracts the first connection on the queue of pending
      connections, creates a new socket with the properties of s, and allocates
      a new file descriptor, ns, for the socket.  If no pending connections are
      present on the queue and the socket is not marked as non-blocking, accept
      blocks the caller until a connection is present.  If the socket is marked
      as non-blocking and no pending connections are present on the queue,
      accept returns an error as described below.  accept uses the netconfig
      file to determine the STREAMS device file name associated with s.  This
      is the device on which the connect indication will be accepted.  The
      accepted socket, ns, is used to read and write data to and from the
      socket that connected to ns; it is not used to accept more connections.
      The original socket (s) remains open for accepting further connections.

      The argument addr is a result parameter that is filled in with the
      address of the connecting entity as it is known to the communications
      layer.  The exact format of the addr parameter is determined by the
      domain in which the communication occurs.

      addrlen is a value-result parameter.  Initially, it contains the amount
      of space pointed to by addr; on return it contains the length in bytes of
      the address returned.

      accept is used with connection-based socket types, currently with
      SOCKSTREAM.

      It is possible to select a socket for the purpose of an accept by
      selecting it for read.  However, this will only indicate when a connect
      indication is pending; it is still necessary to call accept.

RETURN VALUE
      accept returns -1 on error.  If it succeeds, it returns a non-negative
      integer that is a descriptor for the accepted socket.

ERRORS
      accept will fail if:

      EBADF               The descriptor is invalid.

      ENOTSOCK            The descriptor does not reference a socket.




10/89                                                                    Page 1







accept(3N)                       UNIX System V                       accept(3N)


      EOPNOTSUPP          The referenced socket is not of type SOCKSTREAM.

      EWOULDBLOCK         The socket is marked as non-blocking and no
                          connections are present to be accepted.

      EPROTO              A protocol error has occurred; for example, the
                          STREAMS protocol stack has not been initialized.

      ENODEV              The protocol family and type corresponding to s could
                          not be found in the netconfig file.

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

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

SEE ALSO
      bind(3N), connect(3N), listen(3N), socket(3N), netconfig(4).

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 accept and pass the size of
      the structure in the addrlen argument.

      See the ``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