Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Что делаю не так php soket
Форумы портала PHP.SU » » Вопросы новичков » Что делаю не так php soket

Страниц (1): [1]
 

1. undex - 26 Октября, 2016 - 16:39:53 - перейти к сообщению
далаю скриптец для работы с сокетами, сострепал тестовый скрипт, все отлично работает, ное есть одно НО - подключится может только 1 пользователь, хотя в socket_listen прописано 10.
Вот код:
Спойлер (Отобразить)

Первый пользователь подключившийся водит приветственное сообщение и может свободно работать с сокетами, второй просто пустой экран, тестирую через стандартную утилиту telnet в MS WinXP. Сервер на WinServer 2003 (XAMPP)
Тестирую с разных пк в одной локальной сети.
2. armancho7777777 - 27 Октября, 2016 - 10:47:11 - перейти к сообщению
Пример для прослушки более одного клиента.
3. undex - 27 Октября, 2016 - 11:21:50 - перейти к сообщению
armancho7777777 пишет:
Пример для прослушки более одного клиента.

Благодарю, помогло. Еще один вопрос возник. У меня при закрытии одного из терминалов телнета вылетает полностью весь сокет-сервер, ошибка в кракозябрах (хотя кодировка мелкософтовская) ошибка в функции socket_read();
(Добавление)
Перевел кракозябры, текст ошибки: "Операция успешно завершена."
4. teddy - 27 Октября, 2016 - 13:59:49 - перейти к сообщению
Цитата:
есть одно НО - подключится может только 1 пользователь, хотя в socket_listen прописано 10.

Ну и что написано. Это вовсе не означает, что эта десятка будет обрабатываться вне очереди. Если количество соединений более чем 1, тогда эти соединения будут обрабатываться по очереди. В вашем случае после принятия соединения запускается бесконечный цикл который обрабатывает это соединение. Ввиду этого первое соединение не покидает очередь и остальные "ребята" не могут "работать". Если вы будете использовать блокирующие операции при обработки соединений, то никакие socket_select-ы тут не помогут, потому что обработка соединений происходит в одном потоке.

 

Powered by ExBB FM 1.0 RC1