【发布时间】:2014-07-04 23:01:15
【问题描述】:
我正在尝试使用 TCP 打孔机制建立 RMI 客户端服务器连接,其中客户端和服务器位于不同的 NAT/防火墙后面。目前,我可以使用他们的公共 IP 和端口“80”获得客户端和服务器之间的连接。建立 TCP 连接后,我可以检索 RMIServer 的存根信息。另外,我可以 netstat 并查看已建立的连接。
但是当我尝试读取远程对象时,我遇到了异常
java.rmi.ConnectIOException: error during JRMP connection establishment; nested exception is:
java.net.SocketTimeoutException: Read timed out
at sun.rmi.transport.tcp.TCPChannel.createConnection(TCPChannel.java:293)
at sun.rmi.transport.tcp.TCPChannel.newConnection(TCPChannel.java:190)
在使用 netstat 监控连接时,我可以看到 TCP 连接立即终止并且不稳定。 如果我能获得有关如何维护或获得稳定 TCP 连接的任何提示,将会很有帮助。
谢谢。
【问题讨论】:
-
定义“尝试读取远程对象”。并提供堆栈跟踪的其余部分。