Nik*_*lin 3 java sockets networking
InetAddress serverAddr = InetAddress.getByName(serverAddress);
String hostname = serverAddr.getCanonicalHostName();
Socket socket = new Socket(serverAddr, portNumber);
// Freezes before this line if the server is unavailable
socket.setSoTimeout(3000);
Run Code Online (Sandbox Code Playgroud)
有谁知道如何实施服务器可用性检查或防止冻结?
通过使用双参数构造函数,您可以告诉Java立即连接.您正在寻找的是什么
Socket socket = new Socket();
// Configure socket here
socket.connect(new InetSocketAddress(serverAddr, portNumber), 3000);
if (! socket.isConnected()) {
// Error handling
} else {
// Use socket
}
Run Code Online (Sandbox Code Playgroud)
尽管如此,这仍将阻止3s.如果要防止这种情况,请使用线程进行连接.