Задать вопрос
@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);
  • Вопрос задан
  • 55 просмотров
Подписаться 1 Простой Комментировать
Помогут разобраться в теме Все курсы
  • Skillfactory
    Профессия Fullstack веб-разработчик на JavaScript и PHP
    20 месяцев
    Далее
  • Хекслет
    PHP-разработчик
    10 месяцев
    Далее
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы