我正在开发一个通过TCP/IP托管第三方设备的服务器,但是我一直遇到突然的连接断开问题(这些设备通过蜂窝网络连接)。我需要找到一种无需向设备本身写入数据即可检测到断开的方法。
我已经尝试使用TCP keepalive功能,但Java似乎不允许调整keepalive操作的时间。
是否有任何建议的方法可以解决这个问题?
以下是我的简化套接字代码:
public class Test2Socket {
public static void main(String[] args) {
try {
ServerSocket skt = new ServerSocket(1111);
Socket clientSocket = skt.accept();
clientSocket.setKeepAlive(true);
System.out.println("Connected..");
BufferedReader input = new BufferedReader(new InputStreamReader(clientSocket.getInputStream()));
String inputLine;
while((inputLine = input.readLine()) != null)
{
System.out.println(inputLine);
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
任何反馈将不胜感激。