Chapter 1, Developing network-based applications
Sockets

Sockets

Sockets is an API that provides a framework for communication between processes executing either on the same host or across a network. A socket is the basic building block for communication, providing an endpoint to which a name may be bound. Sockets are created within a communications domain (Internet or UNIX) in the same way that files are created within a filesystem. Sockets are bidirectional, providing a two-way flow of data between processes that may or may not have the same parent and may or may not live on the same host.

The SCO sockets library is a 4.3BSD-compatible socket library that can be used to access the protocols provided with SCO TCP/IP: TCP, UDP, and IP. Both the AF_INET and AF_UNIX socket families are supported. 

Table 1-1 Socket library routines (SLIB)

      -----------------------------------------------------------------
      Routine           Description
      -----------------------------------------------------------------
      bstring           byte and byte string operations
      byteorder         convert values between host and network byte
                        order
      getdtablesize     get descriptor table size
      gethostbyname     get network host entry
      gethostname       get/set name of current host
      getnetent         get network entry
      getprotoent       get protocol entry
      getservent        get service entry
      gettimeofday      get date and time
      inet              Internet address manipulation routines
      insque            insert/remove element from a queue
      killpg            send signal to a process group
      perror            system error messages
      rcmd              routines to return a stream to a remote command
      resolver          resolver routines
      rexec             return stream to a remote command
      string            4.3 BSD string operations
      syslog            control system log
      wait3             wait for process to terminate or stop


Table 1-2 Socket system calls (SSC)

         ------------------------------------------------------------
         System call       Description
         ------------------------------------------------------------
         accept            accept a connection on a socket
         adjtime           correct the time to allow for
                           synchronization of the system clock
         bind              bind a name to a socket
         connect           initiate a connection on a socket
         getpeername       get name of connected peer
         getsockname       get socket name
         getsockopt        get and set options on sockets
         listen            listen for connections on a socket
         recv              receive a message from a socket
         select            synchronous I/O multiplexing
         send              send a message to a socket
         shutdown          shut down part of a full-duplex connection
         socket            create an endpoint for communication