Python-Socket - Senden/Empfangen von Nachrichten zur gleichen Zeit
Im Grunde arbeite ich auf einer einfachen chat-Raum verwenden von socket-und thread. In meinem client kann ich empfangen und senden von Nachrichten, mein Problem ist, dass man vor einem anderen in einer Schleife, so dass, wenn ich sende eine Nachricht, die ich erhalten nur Daten, wenn ich eine Nachricht gesendet. Ich will, dass es funktioniert wie jede andere chat-Raum, wo ich Sie erhalten eine Nachricht, wenn ich sende eine Nachricht, jede Hilfe wird sehr helfen. Dies ist mein basic-client:
import socket
import sys
###########
HOST = '25.0.18.52'
PORT = 9999
###########
name = input("Enter your name: ")
s = socket.socket()
s.connect((HOST,PORT))
while 1:
message = input("Message: ")
s.send("{}: {}".format(name, message).encode('utf-8'))
data = s.recv(1024)
a = data.decode("utf-8")
print(a)
InformationsquelleAutor Satyrs | 2015-10-30
Du musst angemeldet sein, um einen Kommentar abzugeben.
Halten, sollten Sie 2 threads. Eins für hören und das andere für den Empfang. In deiner while-Schleife entfernen Sie den listener-Teil, und halten Sie den code im anderen thread. Auf diese Weise erhalten Sie und geben Sie auf der Konsole auf die gleiche Art.
InformationsquelleAutor Sugam