2014-08-31 89 views
0

在RMI中,服務器在某個端口上打開註冊表,然後客戶端連接到服務器。有什麼方法可以知道服務器和客戶端之間的連接是在哪個端口上進行的? 我知道RMI的默認端口是1099,但客戶端的端口號是什麼?客戶甚至打開一個端口嗎?如何獲取rmi中客戶端的端口號?

回答

1

客戶端確實有一個本地端口,就像在任何TCP連接中一樣,但服務器找不到自定義套接字工廠的方式。

服務器也沒有理由需要它。這不是一個有用的信息。它不是一個監聽端口,所以你不能連接到它;它會不時變化;並且它並不唯一標識客戶端,因爲客戶端連接池和服務器端空閒連接超時。

+0

我正在製作一個聊天應用程序,並且在客戶端我想要收聽傳入的消息。消息通過服務器傳遞給客戶端。那麼,我必須在服務器端口上偵聽傳入消息嗎? – bhakti123 2014-09-01 04:23:42

+0

做出決定。要麼你正在使用RMI,要麼你不是。如果是的話,除了在服務器防火牆中打開端口之外,您不必擔心端口。無論如何,由於客戶端防火牆,NAT或調制解調器沒有開放端口設施,您將無法在客戶端收聽。你必須進行民意調查。 – EJP 2014-09-01 04:41:07

+0

那麼哪個更好? RMI或套接字? – bhakti123 2014-09-01 04:54:38