![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Студент
Пользователь
Регистрация: 13.11.2009
Сообщений: 65
|
![]()
Здравствуйте.
Я столкнулся с такой проблемой - fread в блокирующем режиме тормозит работу скрипта. А как работать в неблокирующем не пойму. Прошу пример чтения пакета неизвестной заранее длинны при помощи fread в неблокирующем режиме. Или укажите, где можно об этом подробно почитать. Возможно есть другие способы чтения пакетов? Заранее благодарю. |
![]() |
![]() |
![]() |
#2 |
Форумчанин
Регистрация: 03.05.2011
Сообщений: 158
|
![]()
Посмотрите в сторону сокетов
пример с php.net PHP код:
|
![]() |
![]() |
![]() |
#3 |
Студент
Пользователь
Регистрация: 13.11.2009
Сообщений: 65
|
![]()
Посмотрю, да только хотел обходиться без этого. Не везде поддерживается, да и переписывать неохота
![]() |
![]() |
![]() |
![]() |
#4 | |
Старожил
Регистрация: 09.09.2008
Сообщений: 2,624
|
![]() Цитата:
За блокировку файла отвечает flock, причём запрещает чтение для всех только параметр LOCK_EX. На скорость чтения может влиять то как вы файл открыли, те с каким параметром fopen и закрыли ли вы его после чтения.
Стрелок-охотник
|
|
![]() |
![]() |
![]() |
#5 |
Форумчанин
Регистрация: 03.05.2011
Сообщений: 158
|
![]()
Тут, судя по топику, надо пакеты читать, не файл.
ТС: Это скрипт или апачи-трэд ? Если скрипт, то можно воспользоваться pcntl - втроичный процесс в блокирующем режиме, основной - принимает инфу от второго по семафору или чему-то подобному. Можно для этого так же заюзать mq - модуль, (только линь), там чтение по определению нон-блок, тогда вторичному придётся только складывать считанные в блокирующем режими данные в качестве мессаг в очередь, а основному - их оттуда читать. Но если у вас нет возможности изменить дифолт-модули в установленном php, или добавлять свои экстеншены, то это проблематично. Кроме того, я не вижу в этом смысла - слишком много мороки - проще как-то сокеты раздобыть. |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Использование одной переменной многими без глобальных | Horus92 | PHP | 2 | 13.01.2011 19:28 |
использование DCU без PAS | kaizer131 | Общие вопросы Delphi | 10 | 11.10.2010 15:37 |
Прокрутка картинок без использование Flash | chibis.ru | JavaScript, Ajax | 3 | 02.09.2010 14:04 |
Узнать дескриптор процесса, блокирующего USB | Denager | Общие вопросы Delphi | 3 | 01.07.2010 16:09 |
Использование ActiveX без регистрации | Zen2007 | Общие вопросы .NET | 2 | 10.08.2009 13:40 |