Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ socket(2) — DG/UX 4.30

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

inet(3N)

unix_ipc(6F)

accept(2)

bind(2)

connect(2)

getsockname(2)

getsockopt(2)

ioctl(2)

listen(2)

recv(2)

select(2)

send(2)

shutdown(2)

socketpair(2)



     socket(2)                  DG/UX 4.30                   socket(2)



     NAME
          socket - Create an endpoint for communication.

     SYNOPSIS
          #include <sys/socket.h>

          int   socket  (af, type, protocol)
             int         af;
             int         type;
             int         protocol;

     PARAMETERS
          af             Protocol family (domain).

          type           Type of service desired.

          protocol       Optional protocol id (usually 0).

     DESCRIPTION
          Socket creates an endpoint for communication and returns a
          descriptor for the socket.

          The af parameter specifies the domain in which the socket
          should be created.  The domain determines the semantics of
          the service provided and affects what services are
          available.  The domains available in the system are
          configuration dependent.  Domains are identified by
          constants defined in sys/socket.h.  All constants begin with
          PF; examples are PFUNIX and PFINET.  However, defining a
          domain in sys/socket.h does not imply the domain is
          configured in the current system.

          The socket has the indicated type that specifies the
          semantics of communication.  Socket types are defined in
          sys/socket.h as constants beginning with SOCK; examples are
          SOCKSTREAM and SOCKDGRAM.

          A SOCKSTREAM type provides sequenced, reliable, two-way
          connection-based byte streams with an out-of-band data
          transmission mechanism.  A SOCKDGRAM socket supports
          datagrams (connectionless, unreliable messages of a small,
          fixed maximum length).  SOCKRAW sockets provide access to
          internal network interfaces.  The type SOCKRAW is available
          only to the superuser.

          The protocol optionally specifies a particular protocol to
          be assigned to the socket.  If the user doesn't care which
          protocol in the domain supplies the service, a protocol of
          zero can be given and the domain will choose an appropriate
          protocol.

          However, many protocols may exist and a user can specify a



     Licensed material--property of copyright holder(s)         Page 1





     socket(2)                  DG/UX 4.30                   socket(2)



          particular protocol by giving the protocol identifier in
          this manner.  The protocol number to use depends on the
          communication domain in which communication is to take
          place; see the related documentation for a particular domain
          for more information about individual protocols.

          Sockets of type SOCKSTREAM are full-duplex byte streams,
          similar to pipes.  A stream socket must be in a connected
          state before any data may be sent or received on it.  A
          connection to another socket is created with a connect call.
          Once connected, data may be transferred using read and write
          calls or some variant of the send and recv calls.  When a
          session has been completed, a close may be performed.  Out-
          of-band data may also be transmitted as described in send
          and received as described in recv.

          The communications protocols used to implement a SOCKSTREAM
          ensure that data is not lost or duplicated.  If a piece of
          data for which the peer protocol has buffer space cannot be
          successfully transmitted within a reasonable length of time,
          then the connection is considered broken. Subsequent calls
          will return an error, -1. The specific error code in global
          variable errno will be ETIMEDOUT.  The protocols optionally
          keep sockets warm by forcing transmissions roughly every
          minute in the absence of other activity.  An error is then
          indicated if no response can be elicited on an otherwise
          idle connection for a extended period (e.g., five minutes).
          A SIGPIPE signal is raised if a process sends on a broken
          stream; this causes naive processes, which do not handle the
          signal, to exit.

          SOCKDGRAM and SOCKRAW sockets allow sending of datagrams
          to correspondents named in send calls.  You can also receive
          datagrams at such a socket with recv. Connected SOCKDGRAM
          sockets can communicate through the read and write system
          calls.

          An fcntl call can be used to specify a process group to
          receive a SIGURG signal when the out-of-band data arrives.

     ACCESS CONTROL
          The access depends on the domain and type of service
          requested, see information about the individual domain for
          restrictions.  However, in general only superuser can use
          sockets of type SOCKRAW.

     RETURN VALUE
          The return value is a descriptor referencing the socket.


          0..maxfd       A file descriptor which references the
                         created socket.



     Licensed material--property of copyright holder(s)         Page 2





     socket(2)                  DG/UX 4.30                   socket(2)



          -1             An error occurred.  Errno is set to indicate
                         the error.

     EXCEPTIONS
          Errno may be set to one of the following error codes:


          EAFNOSUPPORT   The specified address family is not supported
                         in this version of the system.


          EACCES         Permission to create a socket of the
                         specified type and/or protocol is denied.


          ESOCKTNOSUPPORT
                         The specified socket type is not supported in
                         this address family.


          EPROTONOSUPPORT
                         The specified protocol is not supported.


          ENFILE         The per-system descriptor table is full.


          ENOBUFS        No buffer space is available.  The socket
                         cannot be created.


          EPROTOTYPE     The protocol type doesn't supply the desired
                         type of service.


          ENOSTR         The system is out of STREAMS resources and
                         could not create the protocol stream.

     SEE ALSO
          inet(3N), unix_ipc(6F), accept(2), bind(2), connect(2),
          getsockname(2), getsockopt(2), ioctl(2), listen(2), recv(2),
          select(2), send(2), shutdown(2), socketpair(2).













     Licensed material--property of copyright holder(s)         Page 3



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