0
我有一臺連接客戶端的服務器來接收一個字符串,但是當連接丟失時服務器會保持相同的狀態,並且不會回到它嘗試的狀態再次建立連接。我用setSoTimeout
但它不工作。setSoTimeout在java tcp連接中不起作用
這裏是我的代碼:
ServerSocket welcomeSocket = null;
Socket connectionSocket = null;
BufferedOutputStream outToClient = null;
try {
System.out.println("connecting to send "+fileToSend);
welcomeSocket = new ServerSocket(3249);
connectionSocket = welcomeSocket.accept();
connectionSocket.setSoTimeout(10000);
welcomeSocket.setSoTimeout(10000);
outToClient = new BufferedOutputStream(connectionSocket.getOutputStream());
} catch (Exception ex) {
System.out.println("set so");
break;
// Do exception handling
}
有人能告訴我這是爲什麼不拋出異常?
你能給我提供一些代碼怎麼做 – Cbour
你可以在客戶端套接字輸入流上使用任何讀取方法,例如'connectionSocket.getInputStream()。read()'。有關其他選項,請參閱[Javadoc for InputStream](http://docs.oracle.com/javase/6/docs/api/java/io/InputStream.html)。 – Perception
這不是無用的。它爲accept()提供超時。 – EJP