Listing 1

public class ServerClock implements TimeMonitor
{
    private Vector listeners;
    private String hostName;
    private int port;
    /**
     * constructor
     */
    public ServerClock(String hostNameVal, int portVal)
    throws Exception
    {
        hostName = hostNameVal;
        port = portVal;
        UnicastRemoteObject.exportObject( this );

        String  serverName = "rmi://" + hostName + ":" + port + "/TimeServices" ;
        TimeServices timeServices = null;
        try {
            timeServices = (TimeServices)Naming.lookup(serverName);
        }
        catch ( Exception e ) {
            e.printStackTrace();
            throw e;
        }
        timeServices.addTimeMonitor( this );
    }