我正在研究Android上的NIO客户端程序,基本上它运行良好,但是当网络不可用时(WIFI被禁用等),我不知道如何区分套接字'真的'连接,即使没有可用的网络,SocketChannel.finishConnect()也总是返回true。如果我尝试写入未连接的SocketChannel,将发生Broken pipe异常。
所以我想知道如何确保SocketChannel真正连接?
答案 0 :(得分:1)
如果我尝试写入未连接的SocketChannel,则会发生Broken pipe异常。
正确。
所以我想知道如何确保SocketChannel真正连接?
就是这样。没有API可以告诉你。 TCP不能那样工作。检测断开的TCP连接的唯一方法是尝试使用它。