next up previous contents index
Next: Graphic Interface Up: General utilities Previous: Kalman filters

    
Sockets

The file $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.



Emilio Remolina
2000-10-04