首页 > 解决方案 > 如何在 Python 中处理多个客户端连接并同时响应它们?

问题描述

我正在设置一个代理,它将接受来自客户端的输入,将该请求中继到服务器,然后将响应转发回客户端。我遇到的问题是如何同时与多个客户端通信。我正在尝试使用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,))

标签: pythonmultithreadingsocketspython-3.6

解决方案


推荐阅读