我使用套接字编写了Python脚本。我写了一个基本的聊天,但是它有问题,我不知道如何使用Threading
库以及使客户端在不阻止的情况下工作。我尝试了While
,但它说:
thread.error:无法启动新线程
这是客户端代码:
import socket
import threading
my_socket = socket.socket()
my_socket = socket.socket()
my_socket.connect(('127.0.0.1', 23))
print('Welcome to the chat room . You can send messages here.')
print('Choose a nickname.')
nickname = raw_input()
def rcv_msg():
print (my_socket.recv(1024))
def snd_msg():
txt = raw_input()
my_socket.send('[' + nickname + ']: ' + txt)
while True:
recv_thread = threading.Thread(target=rcv_msg)
recv_thread.start()
send_thread = threading.Thread(target=snd_msg)
send_thread.start()
我该如何使它起作用?
您在循环时没有最终条件,因此您将创建很多线程,并使用所有系统资源。
请参阅上一个答案
您不应该在无限循环中创建并启动新线程。正如杰里(Jerry(提到的那样,它将一直在制造新线程并使用您的所有系统资源。
如果您打算连续运行这些线程,则可以在send_msg((和rcv_msg((定义中创建循环。