TCP/IP 経由でサードパーティのデバイスをホストするサーバーを開発しており、突然接続が切断されました (デバイスはセルラー経由で接続しています)。デバイス自体にデータを書き込まずに切断を検出する方法を見つける必要があります。
TCP キープアライブ機能の使用を検討しましたが、Java ではキープアライブ操作のタイミングを調整できないようです。
これを行うための推奨される方法はありますか?
私の簡略化されたソケットコードは次のとおりです。
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();
}
}
}
どんなフィードバックでも大歓迎です。