【问题标题】:Handiling disconnected Sockets处理断开的套接字
【发布时间】:2014-09-25 16:15:32
【问题描述】:

我已经在我的应用程序中实现了套接字,当然它正在与服务器通信,我的问题是我无法确定套接字在以下情况下何时关闭。

1) iam 已连接到具有活动互联网连接的 wifi,并且具有活动套接字连接,但我的互联网连接中断

2) 当我连接到 2g/3g 互联网连接时,有时套接字连接会断开

在上述情况下,我无法识别是否有活动的套接字连接。在android中有什么方法可以实现吗?

请帮忙...

【问题讨论】:

  • 我只能说使用broadcast receiver 进行互联网连接或尝试从InputStream 读取

标签: java android sockets


【解决方案1】:

看看Android的Determining and Monitoring the Connectivity Status

您可以使用ConnectivityManager 来检查您是否真正连接到互联网,如果是,那么连接的类型是什么。

有一些示例代码:

ConnectivityManager cm =
        (ConnectivityManager)context.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo activeNetwork = cm.getActiveNetworkInfo();
boolean isConnected = activeNetwork != null &&
                      activeNetwork.isConnectedOrConnecting();

还有,

只要连接细节发生变化,ConnectivityManager 就会广播 CONNECTIVITY_ACTION ("android.net.conn.CONNECTIVITY_CHANGE") 操作。您可以在清单中注册广播接收器以侦听这些更改并相应地恢复(或暂停)您的后台更新。

<action android:name="android.net.conn.CONNECTIVITY_CHANGE"/>

【讨论】:

  • 否,但这是为您要处理的确切情况明确创建的。它不适合你吗?
  • 如果我的连接断开或者我正在从一个连接更改为另一个连接也没关系..但这不是我的情况..我已经尝试过但无法正常工作
猜你喜欢
  • 2012-08-27
  • 1970-01-01
  • 1970-01-01
  • 2019-09-15
  • 1970-01-01
  • 2010-10-03
  • 1970-01-01
  • 1970-01-01
  • 2019-06-07
相关资源
最近更新 更多