设置成非阻塞和0.1秒超时都没有效果,一个线程阻塞所有线程都会阻塞.
import _thread
import os
import socket
import sys
import time
import network
def client():
while True:
mysocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
mysocket.settimeout(0.1)
ai = socket.getaddrinfo("192.168.137.1", 9989)
print("Address infos:", ai)
addr = ai[0][-1]
try:
print("Connecting to:", addr)
mysocket.connect(addr)
except Exception as e:
mysocket.close()
mysocket = None
print("connect error:", e)
time.sleep(1)
continue
count = 10
while True:
try:
timestamp = int(time.time())
recvdata = mysocket.recv(1024)
print(int(time.time())-timestamp)
print(recvdata)
time.sleep(0.1)
except Exception as e:
print("recv error:", e)
mysocket.close()
break
def looptest():
while True:
print("loop!")
time.sleep(1)
if __name__ == '__main__':
os.exitpoint()
sta = network.WLAN(network.STA_IF)
if(sta.active() == False):
sta.active(True)
_thread.start_new_thread(looptest, ())
_thread.start_new_thread(client, ())
try:
while True:
print("main loop")
time.sleep(0.1)
except Exception as e:
sys.print_exception(e) # 打印异常信息
finally:
print("exit")
所有线程会跟着这个3秒一循环,这个怎么解决?