

   CCrreeaattee aa ssoocckkeett ccoonnnneeccttiioonn

        make.socket(host="localhost", port, fail=TRUE, server=FALSE)
        close.socket(socket)

   AArrgguummeennttss::

       host: name of remote host

       port: port to connect to/listen on

       fail: failure to connect is an error?

     server: a server socket?

   DDeessccrriippttiioonn::

        With `server=FALSE' attempts to open a client socket to
        the specified port and host. With `server=TRUE' listens
        on the specified port for a connection and then returns
        a server socket. It is a good idea to use `on.exit' to
        ensure that a socket is closed, as you only get 64 of
        them.

   VVaalluuee::

        An object of class `"socket"'.

     socket: socket number. This is for internal use

       port: port number of the connection

       host: name of remote computer

   WWAARRNNIINNGG::

        I don't know if the connecting host name returned when
        `server=TRUE' can be trusted. I suspect not.

   AAuutthhoorr((ss))::

        Thomas Lumley

   RReeffeerreenncceess::

        Adapted from Luke Tierney's code for `XLISP-Stat', in
        turn based on code from Robbins and Robbins "Practical
        UNIX Programming"

   SSeeee AAllssoo::

        `close.socket', `read.socket'

   EExxaammpplleess::

        daytime <- function(host = "localhost"){
            a <- make.socket(host, 13)
            on.exit(close.socket(a))
            read.socket(a)
        }
        daytime()  ## only works if your computer runs this service
        daytime("chime.cac.washington.edu")

