dima-u
Новичок
Не удаляются сокеты при использовании socket_bind... и pcntl
Экспериментирую с ПХП, и пишу многопоточный сервер, обрабатывающие запросы через сокеты. Все бы хорошо, но вот после каждого нового клиентского соединения ( после его закрытия ) комманда sockstat | grep php дает понять, что стало на 2 сокета больше, хотя клиетская прога уже отвалилась, понимаю, что вопрос не простой, но может кто встречался с проблемой.
Реализация многопоточности на сервере:
Экспериментирую с ПХП, и пишу многопоточный сервер, обрабатывающие запросы через сокеты. Все бы хорошо, но вот после каждого нового клиентского соединения ( после его закрытия ) комманда sockstat | grep php дает понять, что стало на 2 сокета больше, хотя клиетская прога уже отвалилась, понимаю, что вопрос не простой, но может кто встречался с проблемой.
Реализация многопоточности на сервере:
PHP:
$sockconn = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
socket_bind($sockconn, '127.0.0.1', '12345');
while(true)
{
$remote_fd = @socket_accept($sockconn);
$pid = pcntl_fork();
if ($pid == -1) { die('could not fork'); }
if(!$pid) {
echo "Starting new thread...\n";
proccessing($remote_fd);
echo "Childcontrol thread finished....\n";
socket_close($remote_fd);
}
}