在下面的代碼中,在第一次執行方法期間發生連接,但從第二次執行線程內的函數時,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() ;