【发布时间】:2011-11-01 18:02:41
【问题描述】:
我正在尝试通过 java 程序连接到远程主机:
socket = new java.net.Socket(host,port);
我收到以下异常:
java.net.ConnectException: Connection refused: connect
跟踪我的电脑和远程主机之间的IP包,我看到我的电脑发送了3次SYN包,收到了3次[RST,ACK]包。
为什么我的电脑只建立了一个连接,却发送了三个 SYN 数据包?
是不是因为操作系统的 TCP/IP 堆栈?
还是因为Java实现了java.net.Socket类?
【问题讨论】:
-
防火墙和java安全管理器已经在连接两端检查了?这应该有效。我一直使用这个没有问题。试试老重启?
-
问题不是为什么要远程主机重置连接,而是为什么要发送 3 个 SYN 数据包。
-
我认为是重试,但我想了解它是关于 tcp/ip 堆栈实现还是 Socket 类的 java 实现?
-
@ArtSpasky 它是 TCP 堆栈,而不是 Java。
标签: java tcp connection tcp-ip