За последние 24 часа нас посетили 22090 программистов и 1675 роботов. Сейчас ищут 1793 программиста ...

зависает скрипт

Тема в разделе "PHP для новичков", создана пользователем Aven, 21 июн 2017.

  1. Aven

    Aven Новичок

    С нами с:
    21 июн 2017
    Сообщения:
    4
    Симпатии:
    1
    Всем привет!

    Имею простой TCP сервер, который принимает подключения и рассылает всем подключенным клиентам, полученное от одного из клиентов.

    Отправки реализована следующей функцией:
    Код (Text):
    1. stream_socket_sendto($send_sock, $data);
    При тестировании демона, подключении/отключении 3-4 клиентов, и массовой отправкой данных обнаружена проблема с зависанием на этой функции через 20-30 секунд.

    В чем может быть проблема? Как я понимаю происходит ситуация, что идет попытка отправки на невалидный ресурс (клиент отключился), но как его проверить на валидность? Проверку is_resource() он проходит.
     
  2. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    Запуск через CLI, какая версия PHP?
     
  3. Aven

    Aven Новичок

    С нами с:
    21 июн 2017
    Сообщения:
    4
    Симпатии:
    1
    Проблему решил, добавил после подключения нового клиента:
    PHP:
    1. stream_set_blocking($newsock, 0);
    Пока повесить не удалось, посмотрим...
     
    denis01 нравится это.