2014-08-31 92 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