Как я могу обрабатывать несколько клиентских подключений и отвечать на них одновременно в Python? - PullRequest
0 голосов
/ 08 февраля 2019

Я настраиваю прокси-сервер, который будет принимать входные данные от ретранслятора клиента (-ов), которые запрашивают сервер, а затем пересылать ответ обратно клиенту.Проблема, с которой я сталкиваюсь, заключается в том, как общаться с несколькими клиентами одновременно.Я пытаюсь использовать многопоточность 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,))
...