1

我正在开发Android上的NIO客户端程序,基本上它运行良好,但是当网络不可用(WIFI被禁用等)时,我不知道如何区分套接字“真正”连接,SocketChannel.finishConnect () 即使没有可用的网络也总是返回 true。如果我尝试写入未连接的 SocketChannel,则会发生 Broken pipe 异常。

所以我想知道如何确保 SocketChannel 真的连接了?

4

1 回答 1

1

如果我尝试写入未连接的 SocketChannel,则会发生 Broken pipe 异常。

正确的。

所以我想知道如何确保 SocketChannel 真的连接了?

这就是如何。没有 API 可以告诉你。TCP 不能那样工作。检测断开的 TCP 连接的唯一方法是尝试使用它。

于 2014-02-20T04:01:41.527 回答