我們有一個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。