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 c语言怎么用printf(“\b \b”)与getch()实现黑框里写入与删除?
  • ¥20 怎么用dlib库的算法识别小麦病虫害
  • ¥15 华为ensp模拟器中S5700交换机在配置过程中老是反复重启
  • ¥15 java写代码遇到问题,求帮助
  • ¥15 uniapp uview http 如何实现统一的请求异常信息提示?
  • ¥15 有了解d3和topogram.js库的吗?有偿请教
  • ¥100 任意维数的K均值聚类
  • ¥15 stamps做sbas-insar,时序沉降图怎么画
  • ¥15 买了个传感器,根据商家发的代码和步骤使用但是代码报错了不会改,有没有人可以看看
  • ¥15 关于#Java#的问题,如何解决?