AndroidAsync ライブラリを使用して開かれた TCP ソケットが使用できなくなったことをクライアント側で確認する適切な方法は何ですか? これは、(プレーン TCP、非 AndroidAsync) サーバーが明示的にソケットのクローズを開始しなかった場合です (そのため、ClosedCallback は呼び出されません)。たとえば、サーバーがコールド リブートされた場合です。
DataCallback は、サーバーがデータを送り返す場合にのみ使用でき、エラー メッセージの受信には使用できないようです。
私にもそう思われる
Util.writeAll(socket, (byte[]) payload.array(), new CompletedCallback()
{
@Override
public void onCompleted(Exception ex)
{
if (ex != null)
{
Log.e(TAG, "write failed with ex message= " + ex.getMessage());
throw new RuntimeException(ex);
}
}
});
例外もスローしません。
したがって、この時点では、クライアントが定期的にデータを書き込む場合でも、ソケットが使用できなくなったことを検出する方法がわかりません。