import java.rmi.*;
import java.util.*;
public interface FarOutDate extends Remote
{
Date getDate() throws RemoteException;
}
The Server: (DateServer.java)
import java.util.*;
import java.rmi.*;
import java.rmi.server.*;
public class DateServer
{
public static void main (String args[])
{
System.setSecurityManager(new RMISecurityManager());
try
{
FarOutDate date_server = new DateImpl();
Naming.rebind("DateServer", date_server);
System.out.println("DateServer serving");
}
catch (Exception e)
{
System.out.println(e.toString());
}
}
}
The Implemented Classes: (DateImpl.java)
import java.util.*;
import java.rmi.*;
import java.rmi.server.*;
public class DateImpl extends UnicastRemoteObject implements FarOutDate
{
public DateImpl () throws RemoteException { }
public Date getDate() throws RemoteException
{
return new Date();
}
}
A Simple Client: (FarOutDateClient.java)
import java.rmi.*;
import java.awt.*;
import java.awt.event.*;
public class FarOutDateClient extends java.applet.Applet
implements ActionListener
{
TextField text;
Button getit;
TextArea area;
public void init ()
{
setLayout(new BorderLayout(10,10));
add ("North", text = new TextField());
add ("Center", area = new TextArea());
Panel p = new Panel();
p.setLayout(new GridLayout(1,3));
p.add(new Label());
p.add(getit = new Button("Get Date"));
add ("South", p);
}
public void start ()
{
getit.addActionListener(this);
}
public void actionPerformed (ActionEvent evt)
{
if (evt.getSource() == getit)
{
try
{
String server_object = "rmi://localhost/DateServer";
FarOutDate date = (FarOutDate)Naming.lookup(server_object);
area.append(date.getDate()+"\n");
}
catch (Exception e)
{
text.setText(e.toString());
}
}
}
}
HTML file to start the client: (date.html)
< applet code="FarOutDateClient.class" width=300 height=350 > < /applet >
Instructions: