RMI使用小例

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到教程。

1、定义一个接口(继承Remote):

方法要抛RemoteException。

 

package rmi;


import java.rmi.RemoteException;


public interface IAdd extends java.rmi.Remote{

int add ( int a , int b ) throws RemoteException;  

 

 

}

 

 

 

2、定义一个类作为服务端 (继承UnicastRemoteObject  ,实现接口IAdd 、,Serializable):

构造和方法要抛RemoteException。

 

package rmi;

import java.rmi.RemoteException;
import java.rmi.registry.LocateRegistry;
import java.rmi.registry.Registry;


public class AddServer extends java.rmi.server.UnicastRemoteObject implements IAdd , Serializable{

public AddServer() throws RemoteException {  
super();
}


public int add ( int a ,int b ) throws RemoteException {

return a+b ;
}

public static void main(String[] args) {


try {     
AddServer as = new AddServer();  
Registry registry = LocateRegistry.createRegistry(2500);   

//  取名 add
           registry.bind("add", as);  

              //  提示服务端开启
                 System.out.println("AddServer Start...");  


} catch (Exception e) {   
e.printStackTrace();   
}  
}
}

 

3、测试类(作为客户端)

package testdb;

import java.net.MalformedURLException;
import java.rmi.Naming;
import java.rmi.NotBoundException;
import java.rmi.RemoteException;
import rmi.IAdd ;

public class Test {

  public static void main(String[] args) {

try {
//  最后拼接的名字来自AddServer 类中取的名字。
IAdd  add =  ( IAdd )Naming.lookup("rmi://127.0.0.1:2500/add");

//  测试加法运算
System.out.println( " a+b= " + add . add ( 2,3) );

} catch (MalformedURLException e) {
e.printStackTrace();
} catch (RemoteException e) {
e.printStackTrace();
} catch (NotBoundException e) {
e.printStackTrace();
}   
     }
}

 

注: IAdd  add =  ( IAdd )Naming.lookup("rmi://127.0.0.1:2500/add");   此行中 add 是来自服务端  registry.bind("add", as);  中设置的名字:add 。

即:服务端  registry.bind(" remove ", as);   ,那么客户端就是  IAdd  add =  ( IAdd )Naming.lookup("rmi://127.0.0.1:2500 / remove ");   。

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值