日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

linux rmi端口,RMI 两个端口 - 差不多先生的个人空间 - OSCHINA - 中文开源技术交流社区...

發布時間:2024/9/3 linux 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 linux rmi端口,RMI 两个端口 - 差不多先生的个人空间 - OSCHINA - 中文开源技术交流社区... 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

在項目中使用rmi,發布到linux,unix,由于開了防火墻。需要配置防火墻端口。剛開始配置了一個固定端口,死都連接不通,后來同netstat -antup |grep pid 查看進程監聽的端口,,發現原來rmi有2個端口一個是固定的。一個是隨機的。

RMI之所以使用的范圍受限制主要有兩方面原因,其一:必須要是java,平臺的異構性受到限制;其二:穿越防火墻不方便。這里主要談談RMI如何通過固定分配端口來穿越防火墻。 RMI穿越防火墻不方便主要是因為除了RMI服務注冊的端口(默認1099)外,與RMI的通訊還需要另外的端口來傳送數據,而另外的端口是隨機分配的,所以要想RMI的客戶能通過防火墻來與RMI服務通訊,則需要能讓隨機分配的端口固定下來,具體做法如下:

1、增加一個文件SMRMISocket.java

importjava.rmi.server.*;

importjava.io.*;

importjava.net.*;

publicclassSMRMISocketextendsRMISocketFactory {

publicSocket createSocket(String host,intport)throwsIOException{

returnnewSocket(host,port);

}

publicServerSocket createServerSocket(intport)throwsIOException {

if(port ==0)

port = 10990;//不指定就隨機分配了

returnnewServerSocket(port);

}

}

import java.rmi.server.*;

import java.io.*;

import java.net.*;

public class SMRMISocket extends RMISocketFactory {

public Socket createSocket(String host, int port) throws IOException{

return new Socket(host,port);

}

public ServerSocket createServerSocket(int port) throws IOException {

if (port == 0)

port = 10990; //不指定就隨機分配了

return new ServerSocket(port);

}

}

2、在實例化UnicastRemoteObject的子類前加入一下代碼:

try{

RMISocketFactory.setSocketFactory(newSMRMISocket());

} catch(Exception ex) {

}

總結

以上是生活随笔為你收集整理的linux rmi端口,RMI 两个端口 - 差不多先生的个人空间 - OSCHINA - 中文开源技术交流社区...的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。