我使用socket编写了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()
我怎样才能让它发挥作用?
答案 0 :(得分:0)
在while循环中没有结束条件,因此您将创建大量线程,耗尽所有系统资源。
答案 1 :(得分:0)
你不应该在无限循环中创建和启动新线程。 正如Jerry所说,它会一直使用新的线程并使用你所有的系统资源。
如果您的目标是让这些线程连续运行,您可以在send_msg()和rcv_msg()定义中创建循环。