【问题标题】:When Wifi disconnect, how does Socket on Android server side know that?当Wifi断开连接时,Android服务器端的Socket如何知道?
【发布时间】:2013-07-23 16:55:30
【问题描述】:

我开发了一个 Android 应用程序,它在 Wifi AP 模式下作为 Socket 服务器工作。一些客户端与我的应用程序设置 Wifi 连接和套接字连接。连接套接字后,我断开了与客户端的 Wifi 连接,但是在我的服务器应用程序中没有异常,套接字的读取方法也返回 -1。我的问题是:

  1. 如何检测断开的 wifi 连接
  2. 如何检测哪个客户端的wifi连接断开

谢谢。

【问题讨论】:

    标签: android sockets wifi


    【解决方案1】:

    在线程中使用它

    public static boolean checkNetworkConnection(Context context)   
    {   
    
       final ConnectivityManager connMgr = (ConnectivityManager)context.getSystemService(Context.CONNECTIVITY_SERVICE);   
    
       final android.net.NetworkInfo wifi =connMgr.getNetworkInfo(ConnectivityManager.TYPE_WIFI);   
       final android.net.NetworkInfo mobile =connMgr.getNetworkInfo(ConnectivityManager.TYPE_MOBILE);   
    
       if(wifi.isAvailable()||mobile.isAvailable())   
           return true;   
       else  
           return false;   
    }  
    

    【讨论】:

    • 谢谢。但在我的情况下,我的 AP 有几个 Wifi 连接。 getNetworkInfo() 方法返回哪一个?
    • @yinhao 试试 WifiManager wifi = (WifiManager)(this.getSystemService(Context.WIFI_SERVICE)); WifiInfo wifiInfo = wifiManager.getConnectionInfo(); wifiInfo 有一些状态
    • 再次感谢您的回复。但是有几个 Wifi 连接。 getConnectionInfo 返回哪一个?我认为这种方法用于 Wifi 客户端而不是 AP 服务器端。因为在客户端,只有一个 Wifi 连接。
    猜你喜欢
    • 2018-02-20
    • 1970-01-01
    • 1970-01-01
    • 2021-12-22
    • 1970-01-01
    • 2011-02-22
    • 2019-02-23
    • 1970-01-01
    相关资源
    最近更新 更多