我正在设置一个代理,该代理将接受来自客户端的请求,该输入将请求转发给服务器,然后将响应转发回客户端。我遇到的问题是如何同时与多个客户端进行通信。我正在尝试使用python多线程,但没有成功。我的代码如下:
while True:
(client_socket, addr) = self.sock.accept()
t = threading.Thread(target=self.thread_start(client_socket))
t.start()
thread_start()在其中开始运行与客户端通话的操作。
此代码将接受多个客户端,但是每个客户端必须等待先前连接的客户端关闭才能发送数据。
我知道sock.accept()将接受多个客户端,但是似乎只是将它们放入队列,直到前一个客户端完成。是否可以同时与多个客户通话?
编辑:通过更改
,我似乎已获得正确的行为 t = threading.Thread(target=self.thread_start(client_socket))
t.start()
使用
import _thread
_thread.start_new_thread(self.thread_start, (clientsocket,))