import java.rmi.RemoteException; import java.rmi.registry.LocateRegistry; import java.rmi.registry.Registry; import java.rmi.server.UnicastRemoteObject; import java.util.ArrayList; class ChatBackImpl implements ChatBack { public void send(String src, String msg) throws RemoteException { /* TODO */ } } public class ChatClient { public static void main(String args[]) { if (args.length != 2) { System.out.println("Usage: ChatClient host nickname"); System.exit(1); } try { Registry registry = LocateRegistry.getRegistry(args[0]); Chat chat = (Chat) registry.lookup("chat"); ChatBack chatback = new ChatBackImpl(); ChatBack stub = (ChatBack) UnicastRemoteObject.exportObject(chatback, 0); // sample chat.connect(args[1], stub); ArrayList users = chat.list(); System.out.println("users: " + users); chat.send(args[1],"hello world!"); chat.disconnect(args[1]); } catch (Exception e) { System.out.println("ChatClient exception: " + e.getMessage()); e.printStackTrace(); } } }