我有一个客户端,我想尝试连续连接到服务器,直到建立连接(即直到我启动服务器)。
clientSocket = new Socket();
while (!clientSocket.isConnected()) {
try {
clientSocket.connect(new InetSocketAddress(serverAddress, serverPort));
} catch (IOException e) {
e.printStackTrace();
}
// sleep prevents a billion SocketExceptions from being printed,
// and hopefully stops the server from thinking it's getting DOS'd
try {
Thread.sleep(1500);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
第一次尝试后,我得到ConnectionException
;预期,因为没有什么可以连接到。然而,在那之后,我开始得到SocketException: Socket closed
这对我没有意义,因为clientSocket.isClosed()
总是在connect()
来电之前和之后返回false。
我应该如何更改代码以获得我需要的功能?
答案 0 :(得分:2)
即使连接尝试失败,也无法重新连接Socket
。你必须关闭它并创建一个新的。