@Galdar
Web, JS, PHP, NGINX, Linux

Как написать демона для сохранения и поддержания нового соединения для каждого нового ip в сокете?

Есть сокет, прекрасно работает, приходит соединение и так же по нему уходит ответ, только вот создается только одно соединение, которое перезаписывается каждый раз когда идет новое подключение. Возможно у кого-то есть демон, который запускается и держит соединение для каждого нового ip. Буду рад статье или фрагментом самого демона..

socket
$socket = stream_socket_server("tcp://"._ADDRESSWEB_.":"._PORT_, $errno, $errstr);

if (!$socket) {
    die("$errstr ($errno)\n");
}

$connects = [];
$GLOBALIP = [];

while (true) {


    $read   = $connects;
    $read[] = $socket;
    

    $write = $except = null;

    if (!stream_select($read, $write, $except, null)) { 
        break;
    }

    if (in_array($socket, $read)) {
/* в этом месте постоянно идет вот это соединение
Соединение
Resource id #6 ресурс постоянно один и тот же
192.168.2.163 адрес меняется в зависимости от подключения
*/
        if (($connect = stream_socket_accept($socket, -1)) && $info = handshake($connect)) {
                $connects[] = $connect; 
        }
        unset($read[ array_search($socket, $read) ]);
    }

    foreach($read as $connect) {
        $data = fread($connect, 100000);
        if (!$data) { 
            fclose($connect);
            unset($connects[ array_search($connect, $connects) ]);
            onClose($connect);
            continue;
        }

    }

}

fclose($server);
  • Вопрос задан
  • 52 просмотра
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы