rmi的端口问题

以前没注意,rmi这东西竟然要2套端口,一个是都知道的1099引擎端口,另外一个是通信的服务端口, 如果不指定的话会随机指定。比较麻烦。

看到了这个学习了下。

http://dev.firnow.com/course/3_program/java/javaxl/2008629/129098.html

 

1、增加一个文件SMRMISocket.java

01 import java.rmi.server.*;
02  
03 import java.io.*; import java.net.*;
04  
05 public class SMRMISocket extends RMISocketFactory {
06  
07   public Socket createSocket(String host, int port) throws IOException{
08  
09   return new Socket(host,port);
10  
11   }
12  
13 public ServerSocket createServerSocket( int port) throws IOException {
14  
15   if (port == 0 ) port = 10990 ;
16  
17   //不指定就随机分配了
18  
19   return new ServerSocket(port);
20  
21 }
22  
23 }

 

 

2、在实例化UnicastRemoteObject的子类前加入一下代码:

 

1 try {
2  
3   RMISocketFactory.setSocketFactory ( new SMRMISocket());
4  
5 }
6  
7 catch (Exception ex) {
8  
9 }

 

 这样的话RMI分配的端口就被固定了,防火墙只需要打开1099和10990端口即可。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值