我们有一个java服务器,它使用Android客户端保持套接字通道打开,以便为我们的客户端应用程序提供推送功能。写入应该关闭的java套接字通道不会生成异常
但是,在将Android设置为飞行模式后,我期望切断连接,服务器仍然可以写入与该Android客户端关联的SocketChannel对象,并且不会引发错误。在写入之前调用SocketChannel.isConnected()返回true。
我们缺少什么?处理套接字与移动设备不同吗?
在此先感谢您的帮助。
我们有一个java服务器,它使用Android客户端保持套接字通道打开,以便为我们的客户端应用程序提供推送功能。写入应该关闭的java套接字通道不会生成异常
但是,在将Android设置为飞行模式后,我期望切断连接,服务器仍然可以写入与该Android客户端关联的SocketChannel对象,并且不会引发错误。在写入之前调用SocketChannel.isConnected()返回true。
我们缺少什么?处理套接字与移动设备不同吗?
在此先感谢您的帮助。
SocketChannel.socket().isConnected()
and SocketChannel.isConnected()
在套接字连接之前返回false。 套接字连接后,它们将返回true, 由于任何原因,它们不会恢复为false。
SocketChannel.isOpen()
返回true 直到您拨打SocketChannel.socket().close()
或SocketChannel.close()
。 一旦你已在socket上调用close(),SocketChannel.isOpen()
将 返回false, 没有其他事件会导致它返回false。
SocketChannel.socket().isClosed()
返回false 直到您拨打SocketChannel.socket().close()
或SocketChannel.close()
。 一旦你已经调用close()
在一个插座上 - SocketChannel.socket().isClosed()
将返回true, 没有其他事件会导致它返回true。