$VULCAN/src/socket.scm defines the classes <msocket> and <mserver>. The methods associated with this class are:
 (mstart (self <msocket>))
 (mstart (self <mserver>))
 (close  (self <msocket>))
 (read-socket (self <msocket>))   // read next expression from
                                  // the socket
 // write to a socket always includes an end of line character
 (write-socket (self <msocket>) expression)
        // use ``~a'' when writing the result of the expression
 (write-socket-s (self <msocket>) expression)   
        // uset ``~s'' when writing the result of the expression
 (write-socket-lf (self <msocket>) expression) 
         //  send linefeed character 
 (input-ready? (self <msocket>))
To start a socket you have to specify the host and port associated with it. For example,
(set! ms (mstart (make <msocket> host: ``vulcan'' port: 3333)))contacts
Vulcan on port 3333. If instead you want to open a server in the current host on port 3333, you will do 
(set! ms (mstart (make <mserver> port: 3333)))In the current implementation, only one client can connect to a server. The file
$VULCAN/src/dispatcher.scm illustrates how to use sockets to define an eval loop service.