====== RMI : Corrections ======
// Quelques éléments de corrections...//
====Interfaces Chat et ChatBack====
import java.rmi.Remote;
import java.rmi.RemoteException;
import java.util.ArrayList;
public interface Chat extends Remote {
void connect(String nick, ChatBack ref) throws RemoteException;
void disconnect(String nick) throws RemoteException;
ArrayList list() throws RemoteException;
void send(String src, String msg) throws RemoteException;
void send(String src, String dst, String msg) throws RemoteException;
}
import java.rmi.Remote;
import java.rmi.RemoteException;
public interface ChatBack extends Remote {
void send(String src, String msg) throws RemoteException;
}
====Coquilles Client & Serveur====
import java.rmi.RemoteException;
import java.rmi.registry.LocateRegistry;
import java.rmi.registry.Registry;
import java.rmi.server.UnicastRemoteObject;
import java.util.ArrayList;
import java.util.HashMap;
class ChatImpl implements Chat {
public ChatImpl() { /* TODO */ }
public void connect(String nick, ChatBack ref) throws RemoteException { /* TODO */ }
public void disconnect(String nick) throws RemoteException { /* TODO */ }
public ArrayList list() throws RemoteException { /* TODO */ }
public void send(String src, String msg) throws RemoteException { /* TODO */ }
public void send(String src, String dst, String msg) throws RemoteException { /* TODO */ }
}
public class ChatServer {
public static void main(String args[]) {
try {
Chat chat = new ChatImpl();
Chat stub = (Chat) UnicastRemoteObject.exportObject(chat, 0);
Registry registry = LocateRegistry.getRegistry();
registry.rebind("chat", stub);
} catch (Exception e) {
System.out.println("ChatServer Exception: " + e.getMessage());
e.printStackTrace();
}
}
}
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();
}
}
}
====Correction====
//pas encore...//