通讯
服务端
RMIServer.java
package wan.com;
import java.rmi.AlreadyBoundException;
import java.rmi.RemoteException;
import java.rmi.registry.LocateRegistry;
import java.rmi.registry.Registry;
public class RMIServer {
public static void main(String[] args) throws RemoteException, AlreadyBoundException {
RemoteObjiml remoteObjiml = new RemoteObjiml();
Registry registry = LocateRegistry.createRegistry(1099);
registry.bind("remoteObj",remoteObjiml);
}
}
IRemoteObj.java
package wan.com;
import java.rmi.Remote;
import java.rmi.RemoteException;
public interface IRemoteObj extends Remote {
public String sayHello(String keywords) throws RemoteException;
}
RemoteObjiml.java
package wan.com;
import java.rmi.RemoteException;
import java.rmi.server.UnicastRemoteObject;
import java.util.Locale;
public class RemoteObjiml extends UnicastRemoteObject implements IRemoteObj {
public RemoteObjiml()throws RemoteException{
}
@Override
public String sayHello(String keywords) throws RemoteException {
String upKeywords = keywords.toUpperCase();
System.out.println(upKeywords);
return upKeywords;
}
}
客户端
RMICilent.java
package wan.com;
import java.rmi.NotBoundException;
import java.rmi.Remote;
import java.rmi.RemoteException;
import java.rmi.registry.LocateRegistry;
import java.rmi.registry.Registry;
public class RMICilent {
public static void main(String[] args) throws RemoteException, NotBoundException {
Registry registry = LocateRegistry.getRegistry("127.0.0.1", 1099);
IRemoteObj remoteObj =(IRemoteObj) registry.lookup("remoteObj");
remoteObj.sayHello("hello");
}
}
IRemoteObj.java
package wan.com;
import java.rmi.Remote;
import java.rmi.RemoteException;
public interface IRemoteObj extends Remote {
public String sayHello(String keywords) throws RemoteException;
}
分别运行服务端和客户端
创建对象流程
导出对象exprotObject
第一个是我们的对象,后面的UnicastServerrrf是处理网络请求的
创建代理