iteye_19648 2010-11-24 17:21
浏览 239
已采纳

RMI初级问题,请进

:oops: 小弟这些天在做一个RMI的DEMO。
请问各位大哥。怎样取得客户端的端口号。

取得客户端的ip地址很简单。UnicastRemoteObject类中 getClientHost();可以做到。
请问客户端端口咋弄咧。

抓狂了,再搞不定老大要发飙了.. :cry:

补充: 各位,提供个方向就可以。或者给个链接吧 :wink:

  • 写回答

4条回答 默认 最新

  • dyccsxg 2010-11-25 20:41
    关注

    RMI 一般有两个端口,一个是服务端口(默认是 1099),一个是数据端口(默认随机生成),可以将这两个端口都固定下面就不要很麻烦地获取了,要再有其他的就真不知道了。
    [code="java"] public static void main(String[] args)throws Exception {
    // 启动 rmi 服务,端口为1099
    LocateRegistry.createRegistry(1099);
    //
    RMISocketFactory.setSocketFactory(new CustomerSocketFactory());
    // 在 rmi 中注册一个对象
    DbAdapter dbadapter = new DbAdapterImpl();
    Naming.rebind("dbadapter", dbadapter);
    }[/code]
    [code="java"]public class CustomerSocketFactory extends RMISocketFactory{
    // 提供一个固定的数据端口
    public static final int data_port = 10990;

    @Override
    public ServerSocket createServerSocket(int port) throws IOException {
        if (port == 0){
            port = data_port;
        }
        return new ServerSocket(port);
    }
    
    @Override
    public Socket createSocket(String host, int port) throws IOException {
        return new Socket(host, port);
    }
    

    }[/code]

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

悬赏问题

  • ¥15 slam rangenet++配置
  • ¥15 对于相关问题的求解与代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 信号傅里叶变换在matlab上遇到的小问题请求帮助
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作
  • ¥15 求NPF226060磁芯的详细资料
  • ¥15 使用R语言marginaleffects包进行边际效应图绘制
  • ¥20 usb设备兼容性问题
  • ¥15 错误(10048): “调用exui内部功能”库命令的参数“参数4”不能接受空数据。怎么解决啊