我正在开发一个通过 TCP/IP 托管 3rd 方设备的服务器,并且遇到了突然的连接中断(设备通过蜂窝连接)。我需要找到一种方法来检测断开连接,而不必将数据写入设备本身。
我已经研究过使用 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();
}
}
}
任何反馈将不胜感激。