怎样编写一个java程序,怎么创建一个java
RMI 指的是远程方法调用 (Remote Method Invocation)。它是一种机制,使一个Java虚拟机中的对象能够调用另一个Java虚拟机中的对象的方法。任何可以用此方法调用的对象都必须实现远程接口。
如何解决写爬虫IP受阻的问题?立即使用。
当这样的对象被调用时,其参数被“封送”,并从本地虚拟机发送到远程虚拟机(其参数为“解封”)。当该方法终止时,来自远程机器的结果将被分组并发送到调用者的虚拟机。如果方法调用导致异常被抛出,该异常将被指示给调用者。
当提供远程访问时,我们首先需要定义远程可以访问什么。在Java中,定义这种接口需要实现远程接口。
公共接口业务延伸到远程{
公共字符串echo(String msg)引发RemoteException
}定义好接口后,这些功能需要我们自己在服务器端实现。因此,声明一个类来实现我们提供的接口。
公共类BusinessImpl实现业务{
@覆盖
公共字符串echo(String msg)引发RemoteException {
如果(退出)。equalsIgnoreCase(消息)){
System.out.println(服务器将关闭);
system . exit(0);
}
System.out.println(来自客户端的消息: msg );
返回“服务器响应:”消息;
}
}实现这个方法后,有一个如何运行的问题。既然是远程访问,就必须有端口号和实例,所以我们也需要注册我们的代码。
公共类服务器{
public static final String SERVER _ REGISTER _ NAME= BusineeDemo ;
公共静态void main(String[] args)引发RemoteException {
int port=2016
business business=new business impl();
unicastremoteobject . export object(业务,端口);
registry registry=locate registry . create registry(1099);
registry . rebind(SERVER _ REGISTER _ NAME,business);
}
}这里有两个Java的类:UnicastRemoteObject和LocateRegistry
一个界面:注册表
注册表接口(Registry interface):为简单的远程对象提供一个远程接口,用于存储和获取远程对象的引用,这些引用是通过字符串类型的任意变量名获取的。bind、unbind和rebind方法用于更改这些注册的名称,lookup和list方法用于查询当前绑定的对象。
UnicastRemoteObject类:用于导出远程对象。
LocateRegistry类:是一个辅助类程序,用来获取远程调用对象的引用,主要是在特定的IP上构建一个远程对象,接受来自特定端口的回调。
简单的服务端完成了,现在来看客户端:
客户端代码要简单得多。正如我们前面提到的,我们可以通过Registry的查找方法获得当前绑定的服务,所以自然地,我们必须首先获得这个Registry。
公共类客户端{
公共静态void main(String[] args)引发RemoteException,NotBoundException {
//注册表Registry=locate Registry . get Registry( localhost );
registry registry=locate registry . get registry( localhost ,1099);
Business Business=(Business)registry . lookup(Server。服务器_注册_名称);
system . out . println(business . echo( Hello Server ));
}
}以上是如何用java写一个rmi的细节。更多请关注我们的其他相关文章!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。