import java.io.*; import java.rmi.Naming; import java.rmi.RMISecurityManager; import java.rmi.registry.LocateRegistry; import java.rmi.registry.Registry; /*java -Djava.security.policy=firsttry.policy -Djava.rmi.server.codebase=http://? -Djava.rmi.server.hostname=? Server ip port*/ public class Server{ public static void main(String[] args)throws Exception{ if(args.length<3) {System.err.println("usage: java Server host port object"); System.exit(1); } Registry reg= LocateRegistry.createRegistry(Integer.parseInt(args[1])); if(System.getSecurityManager()==null) System.setSecurityManager(new RMISecurityManager()); IDistantObject d=new DistantObject(); Naming.rebind("rmi://"+args[0]+":"+args[1]+"/"+args[2],d); } }
import java.rmi.Remote; import java.rmi.RemoteException; import java.util.Vector; public interface IDistantObject extends Remote{ public void put(String line)throws RemoteException; public Vector<String> getContent()throws RemoteException; }
import java.rmi.Naming; /*java -Djava.security.policy=firsttry.policy Client ip port*/ public class Client{ public static void main(String[] args)throws Exception{ if(args.length<3) {System.err.println("usage: java Client host port object"); System.exit(1); } IDistantObject d=(IDistantObject)Naming.lookup("rmi://"+args[0]+":"+args[1]+"/"+args[2]); System.out.println("avant, taille = "+d.getContent().size()); d.put("vive java"); System.out.println("apres, taille = "+d.getContent().size()); } }
import java.rmi.RemoteException; import java.rmi.server.UnicastRemoteObject; import java.util.Vector; /*UnicastRemoteObject evite d'avoir a faire exportObject dans le serveur*/ public class DistantObject extends UnicastRemoteObject implements IDistantObject{ private Vector<String> content; public static final long serialVersionUID=1; public DistantObject()throws RemoteException{ content=new Vector<String>(); } public synchronized void put(String line)throws RemoteException{ content.add(line); } public synchronized Vector<String> getContent()throws RemoteException{ return(content); } }
grant{ permission java.net.SocketPermission "*:1024-65535", "connect,accept"; permission java.net.SocketPermission "*:80", "connect"; };
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question