|
18 / 18 / 2
Регистрация: 27.09.2011
Сообщений: 155
|
||||||
Socket_read останавливает выполнение скрипта12.10.2014, 17:43. Показов 3105. Ответов 2
Метки нет (Все метки)
Добрый день уважаемые форумчане. У меня на сервере необходимо запрогроммировать сокет который будет слушать большое количество соединений.
Код сейчас выглядет примерно так.
Добавлено через 4 часа 36 минут РЕШЕНО Если socket_read -получит ресурс на который в данный момент не отправлено данных то функция будет ждать пока не придет сообщение от клиента. Чтоб избежать этого "зависания" в цикле чтения группы сокетов необходимо через socket_read проводить только те ресурсы сокетов на которые пришли сообщения от клиентов. Для этого и предназначена функция socket_select(). Спасибо за внимание.
0
|
||||||
| 12.10.2014, 17:43 | |
|
Ответы с готовыми решениями:
2
Двойное выполнение скрипта Выполнение PHP скрипта Выполнение скрипта каждый час |
|
F́́́́́́́ŕ́́́́́́́é́́́ ́ak
260 / 224 / 109
Регистрация: 07.07.2014
Сообщений: 965
|
|
| 13.10.2014, 18:58 | |
|
Это не вся правда =)
Вполне возможна ситуация, что данные от клиента пришли не все, но что-то уже пришло. Например пишите вы веб-сервер, от клиента приходит GET-запрос, но до тех пор пока запрос не будет прочитан полностью (в случае с GET - до двух переходов строк подряд) - его обрабатывать нельзя. Угадайте, что случится с вашим скриптом, если запрос пришел не полностью?.. =) Более того - злой хакер Вася может принципиально прислать вам часть запроса и ждать, но и это не все - это реальный вектор атаки на веб-сервера, ему весьма уязвим Apache (или был), атака называется slow lori. Соответственно помимо socket_accept, - вам нужно использовать stream_set_blocking($socket, 0);, в таком случае чтение из сокета не будет блокировать поток. Считанные данные - сохраняйте в переменную/массив и если считано не до конца - переходите к следующему сокету, позже вернувшись к этому сокету - конкатенируйте новые данные со старыми и обрабатывайте.
0
|
|
|
18 / 18 / 2
Регистрация: 27.09.2011
Сообщений: 155
|
|
| 13.10.2014, 19:48 [ТС] | |
|
Если использовать stream_set_blocking то соединение не активно и когда клиент повторно соединиться к сокету то будет создан новый ресурс для этого сокета. А мне нужно было избежать изменение ресурса.
0
|
|
| 13.10.2014, 19:48 | |
|
Помогаю со студенческими работами здесь
3
Запрет cron скрипта на выполнение через браузер Как остановить выполнение скрипта php другим скриптом php? Выполнение php скрипта по заданию cron и .htaccess каталога скрипта Загрузка и выполнение скрипта из другого скрипта Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2.
При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
|
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут.
https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc
Первый документ красиво выглядит, но без схемы.
Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
|
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере".
Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
|
Команды формы и диалоговое окно
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти".
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2.
В качестве источника данных. . .
|
|
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер
Написал заготовку:
dotnet new console --aot -o UrlHandler
var items = args. Split(":");
var tag = items;
var id = items;
var executable = args;. . .
|
Отправка уведомления на почту при создании или изменении элементов справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере типового справочника "Склады" в конфигурации БП3.
Перед реализацией необходимо выполнить настройку системной учетной записи электронной. . .
|
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений.
9TO2GP2bpX4
a42b81fb172ffc12ca589c7898261ccb/
https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/
Слева синяя линия -. . .
|
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. .
Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
|