万金娱乐网站开发,go.php wordpress,江苏省建设厅网站建造师栏,如何通过做网站和公众号盈利RPC#xff1a;在本地调用远程的函数#xff0c;远程过程调用#xff0c;可以跨语言实现#xff0c;httpClient
RMI#xff1a;远程方法调用#xff0c;Java中用于实现RPC的一种机制#xff0c;RPC的Java版本是J2EE的网络调用机制#xff0c;跨JVM调用对象的方法…RPC在本地调用远程的函数远程过程调用可以跨语言实现httpClient
RMI远程方法调用Java中用于实现RPC的一种机制RPC的Java版本是J2EE的网络调用机制跨JVM调用对象的方法面向对象的思维方式
RMI实现直接或间接实现接口Java.rmi.Remote 成为存在服务器端的远程对象供客户端访问并提供一定的服务
远程对象必须实现Java.rmi.server.uniCastRemoteObject类这样草能保证客户端访问获得远程对象时该远程对象将会把自身的一个拷贝以Socket的形式传输给客户端此时客户端所获得的这个拷贝称为存根而服务器端本身已存在的远程对象则称之为骨架其实此时的存根时客户端的一个代理用于与服务器端的通信而骨架也可认为是服务器端的一个代理用于接受客户端的请求之后调用远程方法来响应客户端的请求
import java.rmi.Remote;
import java.rmi.RemoteException;public interface IService extends Remote {String service(String content) throws RemoteException;
}import java.rmi.RemoteException;
import java.rmi.server.UnicastRemoteObject;public class IServiceImpl extends UnicastRemoteObject implements IService {private String name;public IServiceImpl(String name) throws RemoteException {this.name name;}Overridepublic String service(String content) {return server content;}
}import javax.naming.Context;
import javax.naming.InitialContext;
public class Server {public static void main(String[] args) {try {IService service02 new IServiceImpl(service02);Context context new InitialContext();context.rebind(rmi://127.0.0.1/service02,service02);} catch (Exception e) {e.printStackTrace();}System.out.println(00000);}
}import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;public class Client {public static void main(String[] args) {String url rmi://127.0.0.1/;try {Context context new InitialContext();IService service02 (IService) context.lookup(urlservice02);Class stubClass service02.getClass();System.out.println(service02 is stubClass.getName());Class[] interfaces stubClass.getInterfaces();for (Class c : interfaces) {System.out.println(implement c.getName() interface);}System.out.println(service02.service(hello));} catch (Exception e) {e.printStackTrace();}}
}