作者:暖倪2502938803 | 来源:互联网 | 2023-01-31 16:14
我有一个Android设备,使用java.net.Socket与PC无线通信.一切都很好,但如果我没有做任何事情(即没有网络使用)正好1分钟,那么当Android向PC发送数据包时,PC会收到它并发送一个ACK,但Android会以RST响应.
来自Wireshark(10.1.2.1是Android,10.1.2.11是PC)......
356 0.112470 10.1.2.1 10.1.2.11 TCP 97 34360→181 [PSH,ACK] Seq = 1 Ack = 1 Win = 4935 Len = 31 TSval = 156103571 TSecr = 320673352
359 0.000011 10.1.2.11 10.1.2.1 TCP 66 181→34360 [ACK] Seq = 1 Ack = 32 Win = 260 Len = 0 TSval = 320738236 TSecr = 156103571
360 0.000304 10.1.2.1 10.1.2.11 TCP 60 34360→181 [RST] Seq = 32 Win = 0 Len = 0
在这一点上,如果我询问套接字的成员变量,它说...
isCOnnected= true
isCreated = true
isInputShutdown = false
isOutputShutdown = false
isClosed = false
isBound = true
...看起来我应该仍然接收数据包就好了. 那我怎么弄清楚我发送RST的原因呢?
注意 - 没有设置"睡眠"或关闭wifi或显示器或此设备上启用的任何其他节电功能设置.