我想了解为什么我必须等待我的接收者线程结束它的工作才能做任何其他事情。我知道我的 sock_listen 函数正在等待连接,这就是它的意思,但我不明白为什么这不会发生在我的线程“内”。
对不起,如果这是一个愚蠢的问题,但我有点迷茫!先感谢您!
def sock_listen(address, port):
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server_address = (address,port)
print("Starting listener on %s and port %s" % server_address)
sock.bind(server_address)
sock.listen(1)
while True:
print("[-] Waiting for connection")
connection, client_address = sock.accept()
print("[+] Connection from " + str(client_address))
data = connection.recv(256)
while (data) :
print("[" + time.strftime("%H:%M:%S") + "] " + str(data))
data = connection.recv(256)
receiver = threading.Thread(sock_listen("localhost",10000))
print("Nothing reaches me, I can not be printed until the sock_connect func is done looping!")
receiver.start()
我的目标是进行 TCP 简单聊天,其中专用线程将处理和打印传入消息,主进程将发送用户输入(消息)
冉冉说
相关分类