在下面的代码中,在第一次执行方法期间发生连接,但从第二次执行线程内的函数时,accept()函数不接受任何功能,它只是停留在提示下,即使我从其他本地设备连接也不做任何事情。任何帮助将是非常有用的。这是代码。我对线程真的很陌生。所以请纠正我的错误,并对我的代码中的任何错误进行全面的说明。从线程调用时,Python套接字accept()不起作用
def serverwaiter():
myip = "192.168.1.2";
port = 6027;
s = socket.socket();
s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1);
s.bind((myip, 6027));
s.listen(10);
print("My ip :- {}".format(myip)) ;
cobj , addr = s.accept() ;
mythread = threading.Thread(target = serverwaiter, name = "TCP connection waiter {}".format(threading.active_count()-1))
threads.append((cobj,addr)) ;
mythread.start() ;
print("Connected to {}".format(addr[0])) ;
data = cobj.recv(1024) ;
print("Host {} sent data = {}".format(addr, data));
while(len(data)!=0):
print("Waiting for Data from {}".format(addr[0])) ;
data = cobj.recv(1024) ;
data = data.decode() ;
print("Host {} sent data = {}".format(addr ,data)) ;
serverwaiter() ;