次のコードのメソッドの最初の実行中に接続が行われていますが、スレッド内の関数の2回目の実行からはaccept任意のfunctoinを受け入れるだけで、プロンプトにとどまり、他のローカルデバイスから接続しても何もしません。どんな助けでも本当に役立つだろう。ここにコードがあります。私は本当にスレッディングに新しいです。だから私の間違いを訂正し、私のコード内のエラーについて完全な説明をしてください。スレッドから呼び出されたときに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() ;