Перебор tcp-серверов для подключения

Имеется множество одинаковых TCP серверов на питоне. Каждый из них не имеет очереди и обрабатывает только один запрос, отклоняя остальные, пока не отправит ответ. Тривиальный код представлен ниже:

while True:
    tcp_socket_host = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
    tcp_socket_host.setsockopt(socket.SOL_SOCKET,socket.SO_REUSEADDR,True)
    tcp_socket_host.bind(('',2624))
    tcp_socket_host.listen(0)
    socket_ac,addr_client=tcp_socket_host.accept()
    seng_data="response"
    socket_ac.send(seng_data.encode('utf-8'))

Имеется общий сервер на php, который выступает в роли TCP клиента и отправляет запросы на py сервера. Код соответственно предоставлен ниже:

while ($cc<30){
      $cc=$cc+1;
      foreach($adress as $address){
        if (($socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP)) < 0) {continue;}
        $result = socket_connect($socket, $address, $port);
        $result = socket_send($socket, $msg, 32767,0);
        if ($result === False){continue;}
        $out = socket_read($socket, 32767);
        if ($out === False xor $out===""){continue;}
        break 2;
      }
  } 
    $out1 = utf8_decode($out);$output = $out1 . "\n";
    socket_close($socket);

Данный вариант работает, но довольно криво. Есть ли какие-то способы доработать это решение или использовать другое? Задача состоит в том, чтобы входящие от пользователя http запросы гарантированно доходили до python части, обрабатывались и возвращались назад. При этом, чтобы этот процесс проходил как можно быстрее и без повторных запросов


Ответы (0 шт):