2016-03-15 120 views
0

我试图找出是否一个Android IO Socket当前连接,下面(socket.connected)只是似乎告诉我是否已连接到一些套接字点 - 不是它目前是否仍然连接。如何知道socket.Io是否连接android

+0

邮政编码可以从您的代码建议,否则您必须重写代码,如果任何人提供代码http://android-er.blogspot.in/2014/02/android-sercerclient-example-client.html。 –

+0

没有任何级别的TCP API可以告诉你这个金属。你所有的是没有发送或接收错误。 – EJP

+0

我创建了套接字,尝试{socket} = IO.socket(“http:// 192 ...:8080”); (URISyntaxException e){ e.printStackTrace(); } socket.connect(); 现在我想知道如果插座当前连接。 (我使用如果(socket.connected)),但它告诉我,插座是否已连接在某个点 – yassine

回答

0

EJP的答案已经很好,你基本上不必检查套接字是否连接。未连接的套接字上的操作将导致异常。因此,你所要做的就是试着抓住你的代码。检查插座是否是你的操作之前,右侧开放是不够的,因为你可以遇到麻烦,如果出现这种情况:

if(socket.isConnected()) { 
    // cut the ethernet cable here 
    socket.read/write operations 
} 

而且TCP不直接处理断开事件。应该如何立即在物理层面检测到断开连接,如果以太网电缆被切断或类似?你根本做不到,总有一段时间需要检测这个。对于常规的断开连接,可能有可能,但这也是不安全的,因为我已经展示过的例子,所以你永远不能相信这样的功能或方法。

相关问题