ESP32被设置成AP, 客户端断开WIFI后 再重新连接WIFI,客户socket无法连接
[复制链接]
测试ESP32 micropython 网络应用时 发现个问题: ESP32 被设置成AP,且ESP32作为服务器端,手机正常连接到ESP32,手机做客户端,手机发送数据 接收数据 都正常,手机端断开socket连接后,重新再次进行socket连接后,发送数据 接收数据依然正常! 但是!!!:如果在手机socket连接正常的状态下,手机上把WIFI连接改到其他AP, 然后再一次改回来,这种情况下 手机socket连接服务器 就不行了! 但是如果手机socket主动断开,然后再更改WIFI,然后再更改回来,手机socket再重新连接 是正常的! 服务器端recv() 采用默认的堵塞方式接收,当WIFI断开后,这个recv()没有任何信息返回,用户程序无法判断当前连接情况,难道要使用非堵塞方式接收吗 (MICROPYTHON 默认是堵塞方式)。 不知如何处理 请教高手!
while 1:
print("accepting.....")
conn,addr = listenSocket.accept() #Accept a connection,conn is a new socket object
print(addr,"connected")
while True:
data = conn.recv(1024)
if(len(data) == 0):
print("close socket")
conn.close()
break
print(data)
ret = conn.send(data)
|