Die Verbindung passiert während der ersten Ausführung der Methode im folgenden Code, aber ab dem zweiten Mal Ausführung der Funktion innerhalb des Threads, ist die accept() -Funktion nicht Wenn ich irgendeine Funktion akzeptiere, bleibt sie nur bei der Eingabeaufforderung und macht nichts, selbst wenn ich von anderen lokalen Geräten aus eine Verbindung herstelle. Jede Hilfe wäre wirklich hilfreich. Hier ist der Code. Ich bin wirklich neu im Threading. Bitte korrigieren Sie meine Fehler und geben Sie eine vollständige Erklärung für Fehler in meinem Code.Python-Socket accept() funktioniert nicht beim Aufruf aus einem Thread
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() ;