风之遥 2021-06-26 10:26 采纳率: 0%
浏览 369

Android在WIFI不稳定时中断Socket连接

在做手机socket client的时候,连局域网wifi,信号不稳定只有2、3格时,Android系统会将sokcet连接给杀掉,有没有大神知道怎么解决,手机里部分log如下:

06-16 15:29:47.541 D/wpa_supplicant(  757): Notifying state change event to hidl control: 9
06-16 15:29:47.543 D/WifiNetworkMonitor(  452): Probably not a portal: exception java.net.SocketTimeoutException: failed to connect to connectivitycheck.gstatic.com/172.217.174.195 (port 80) from /10.93.223.103 (port 59822) after 2000ms
06-16 15:29:47.543 D/WifiNetworkMonitor(  452): Validated!!!
06-16 15:29:47.543 E/WifiNetworkMonitor(  452): Not any Obervers!!!
06-16 15:29:47.543 D/WifiNetworkMonitor(  452): EVENT_WIFI_NETWORK_CONNECTING
06-16 15:29:47.543 E/WifiNetworkMonitor(  452): Not any Obervers!!!
06-16 15:29:47.543 D/WifiNetworkMonitor(  452): EVENT_WIFI_RSSI_CHANGED
06-16 15:29:47.549 D/wpa_supplicant(  757): wlan0: Determining shared radio frequencies (max len 2)
06-16 15:29:47.549 D/wpa_supplicant(  757): wlan0: Shared frequencies (len=1): completed iteration
06-16 15:29:47.549 D/wpa_supplicant(  757): wlan0: freq[0]: 2412, flags=0x1
06-16 15:29:47.549 D/wpa_supplicant(  757): P2P: Add operating class 81
06-16 15:29:47.549 D/wpa_supplicant(  757): P2P: Channels - hexdump(len=13): 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d
06-16 15:29:47.549 D/wpa_supplicant(  757): P2P: Update channel list
06-16 15:29:47.549 D/wpa_supplicant(  757): P2P: channels: 81:1,2,3,4,5,6,7,8,9,10,11,12,13
06-16 15:29:47.549 D/wpa_supplicant(  757): P2P: cli_channels:
06-16 15:29:47.549 D/wpa_supplicant(  757): wlan0: Cancelling scan request
06-16 15:29:47.549 E/wpa_supplicant(  757): WMM AC: Already initialized
06-16 15:29:47.549 D/WifiStateMachine(  452): Missed CTRL-EVENT-DISCONNECTED, disconnect Auto Roam may happens!!
06-16 15:29:47.549 D/wpa_supplicant(  757): RTM_NEWLINK: ifi_index=11 ifname=wlan0 operstate=5 linkmode=1 ifi_family=0 ifi_flags=0x11003 ([UP][LOWER_UP])
06-16 15:29:47.549 D/wpa_supplicant(  757): nl80211: Set IF_OPER_UP again based on ifi_flags and expected operstate
06-16 15:29:47.549 D/wpa_supplicant(  757): netlink: Operstate: ifindex=11 linkmode=-1 (no change), operstate=6 (IF_OPER_UP)
06-16 15:29:47.550 D/wpa_supplicant(  757): RTM_NEWLINK: ifi_index=11 ifname=wlan0 operstate=6 linkmode=1 ifi_family=0 ifi_flags=0x11043 ([UP][RUNNING][LOWER_UP])
06-16 15:29:47.550 D/wpa_supplicant(  757): nl80211: set_p2p_powersave (legacy_ps=1 opp_ps=-1 ctwindow=-1)
06-16 15:29:47.553 D/WifiP2pService(  452): InactiveState{ when=0 what=143375 target=com.android.internal.util.StateMachine$SmHandler }
06-16 15:29:47.553 D/WifiP2pService(  452): P2pEnabledState{ when=0 what=143375 target=com.android.internal.util.StateMachine$SmHandler }
06-16 15:29:47.553 D/wpa_supplicant(  757): wpa_driver_nl80211_driver_cmd: Driver cmd: BTCOEXMODE 2
06-16 15:29:47.554 E/WifiHAL (  268): wifi_get_packet_filter_capabilities: requestResponse() error: -95
06-16 15:29:47.554 I/WifiHAL (  268): Packet filtering is not supprted
06-16 15:29:47.574 D/ENGPC   (  277): parse_event: event { 'online', '/devices/system/cpu/cpu2', 'cpu', '' }
06-16 15:29:47.582 D/CommandListener(  247): Setting iface cfg
06-16 15:29:47.583 D/DhcpClient(  452): Receive thread stopped
06-16 15:29:47.584 I/Netd    (  247): Destroyed 2 sockets on 10.93.223.103 in 0.6 ms
06-16 15:29:47.586 D/SocketTest_PacketReader( 1702): notifyConnectionError
06-16 15:29:47.586 D/SocketTest_PacketReader( 1702): java.net.SocketException: Software caused connection abort
06-16 15:29:47.586 D/SocketTest_PacketReader( 1702): 	at java.net.SocketInputStream.socketRead0(Native Method)
06-16 15:29:47.586 D/SocketTest_PacketReader( 1702): 	at java.net.SocketInputStream.socketRead(SocketInputStream.java:114)
06-16 15:29:47.586 D/SocketTest_PacketReader( 1702): 	at java.net.SocketInputStream.read(SocketInputStream.java:170)
06-16 15:29:47.586 D/SocketTest_PacketReader( 1702): 	at java.net.SocketInputStream.read(SocketInputStream.java:139)
06-16 15:29:47.586 D/SocketTest_PacketReader( 1702): 	at sun.nio.cs.StreamDecoder.readBytes(StreamDecoder.java:288)
06-16 15:29:47.586 D/SocketTest_PacketReader( 1702): 	at sun.nio.cs.StreamDecoder.implRead(StreamDecoder.java:351)
06-16 15:29:47.586 D/SocketTest_PacketReader( 1702): 	at sun.nio.cs.StreamDecoder.read(StreamDecoder.java:180)
06-16 15:29:47.586 D/SocketTest_PacketReader( 1702): 	at java.io.InputStreamReader.read(InputStreamReader.java:184)
06-16 15:29:47.586 D/SocketTest_PacketReader( 1702): 	at java.io.BufferedReader.read1(BufferedReader.java:221)
06-16 15:29:47.586 D/SocketTest_PacketReader( 1702): 	at java.io.BufferedReader.read(BufferedReader.java:297)
06-16 15:29:47.586 D/SocketTest_PacketReader( 1702): 	at org.kxml2.io.KXmlParser.fillBuffer(KXmlParser.java:1516)
06-16 15:29:47.586 D/SocketTest_PacketReader( 1702): 	at org.kxml2.io.KXmlParser.peekType(KXmlParser.java:993)
06-16 15:29:47.586 D/SocketTest_PacketReader( 1702): 	at org.kxml2.io.KXmlParser.next(KXmlParser.java:349)
06-16 15:29:47.586 D/SocketTest_PacketReader( 1702): 	at org.kxml2.io.KXmlParser.next(KXmlParser.java:313)
06-16 15:29:47.586 D/SocketTest_PacketReader( 1702): 	at org.jivesoftware.smack.PacketReader.parsePackets(PacketReader.java:345)
06-16 15:29:47.586 D/SocketTest_PacketReader( 1702): 	at org.jivesoftware.smack.PacketReader.access$1(PacketReader.java:238)
06-16 15:29:47.586 D/SocketTest_PacketReader( 1702): 	at org.jivesoftware.smack.PacketReader$1.run(PacketReader.java:81)
  • 写回答

2条回答 默认 最新

  • 短跑冠军小蜗牛 2021-06-26 10:48
    关注

    1.可以使用UDP的Socket,即DatagramSocket ;2.维护客户端连接状态(Socket.isConnected()),连接中断时,自动尝试重连

    评论

报告相同问题?

悬赏问题

  • ¥15 matlab数据降噪处理,提高数据的可信度,确保峰值信号的不损失?
  • ¥15 怎么看我在bios每次修改的日志
  • ¥15 python+mysql图书管理系统
  • ¥15 Questasim Error: (vcom-13)
  • ¥15 船舶旋回实验matlab
  • ¥30 SQL 数组,游标,递归覆盖原值
  • ¥15 为什么我的数据接收的那么慢呀有没有完整的 hal 库并 代码呀有的话能不能发我一份并且我用 printf 函数显示处理之后的数据,用 debug 就不能运行了呢
  • ¥20 gitlab 中文路径,无法下载
  • ¥15 用动态规划算法均分纸牌
  • ¥30 udp socket,bind 0.0.0.0 ,如何自动选取用户访问的服务器IP来回复数据