我想知道在客户端检查使用 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);
}
}
});
也不抛出异常。
所以此时我不确定如何检测套接字不再可用,即使客户端定期向其写入数据。