【发布时间】:2022-01-10 08:29:56
【问题描述】:
我正在尝试连接到一个远程主机,一遍又一遍地等待它出现。但是,在出现 Connection Refused 异常(因为服务器尚未运行)后,它会不断抛出 Socket closed 异常。为什么套接字会被关闭?套接字应该简单地处于与失败的 connect() 调用之前相同的状态,不是吗?
while(!tcpSock.isConnected()) {
try {
tcpSock.connect(destination);
} catch (SocketException e) {
System.err.println(e.toString());
}
}
结果
Setting TCP client mode connecting to remote host localhost/127.0.0.1 port 4500
java.net.ConnectException: Connection refused: connect
java.net.SocketException: Socket closed
java.net.SocketException: Socket closed
java.net.SocketException: Socket closed
java.net.SocketException: Socket closed
期望的行为是
Setting TCP client mode connecting to remote host localhost/127.0.0.1 port 4500
java.net.ConnectException: Connection refused: connect
java.net.ConnectException: Connection refused: connect
java.net.ConnectException: Connection refused: connect
java.net.ConnectException: Connection refused: connect
Established connection to: localhost port 4500
(一旦我完成调试,我将注释掉异常的打印。)
【问题讨论】:
标签: java sockets connection-refused