Добрый денек всем !! никак не пойму в чем проблема, запускаю скрипт, который создает сокет на 5 подключений, при конекте на первый - все работает, запрос принимается и отсылается, если сделать еще одно(2-3-4) подключения - конектится, но ответа нет - помогает только полная остановка/запуск сервера (appache). что не так делаю, вот исходник ?> PHP: #!/usr/local/bin/php -q <?php error_reporting (E_ALL); /* Разрешить скрипту зависнуть в ожидании соединений. */ set_time_limit (0); /* Включить неявную очистку вывода, и мы увидим всё получаемое * по мере поступления. */ ob_implicit_flush (); $address = 'localhost'; $port = 10000; if (($sock = socket_create (AF_INET, SOCK_STREAM, 0)) < 0) { echo "socket_create() failed: reason: " . socket_strerror ($sock) . "\n"; } if (($ret = socket_bind ($sock, $address, $port)) < 0) { echo "socket_bind() failed: reason: " . socket_strerror ($ret) . "\n"; } if (($ret = socket_listen ($sock, 5)) < 0) { echo "socket_listen() failed: reason: " . socket_strerror ($ret) . "\n"; } do { if (($msgsock = socket_accept($sock)) < 0) { echo "socket_accept() failed: reason: " . socket_strerror ($msgsock) . "\n"; break; } do { if (FALSE === ($buf = socket_read ($msgsock, 2048))) { echo "socket_read() failed: reason: " . socket_strerror ($ret) . "\n"; break 2; } if (!$buf = trim ($buf)) { continue; } if ($buf) { $msg = 'Rec_OK'.chr(13).chr(10); // обязательно 0А socket_write($msgsock, $msg, strlen($msg)); continue; } } while (true); socket_close ($msgsock); } while (true); socket_close ($sock);
читал читал, так и не понял как применить сюда socket_set_nonblock() / socket_set_block() неужели только я столкнулся с этой проблемой и вообще зачем такие сокеты - которые не отвечают