Использование фильтра zlib с парой разъемов

По какой-то причине фильтр zlib.deflate не работает с парами сокетов, генерируемыми stream _ socket _ pair () . Все, что можно прочитать со второго сокета, это двухбайтовый заголовок zlib, и все после этого равно NULL.

Пример:

 6, 'window' => 15, 'memory' => 9);

stream_filter_append($in, 'zlib.deflate', STREAM_FILTER_WRITE, $params);
stream_set_blocking($in, 0);
stream_set_blocking($out, 0);

fwrite($in, 'Some big long string.');
$compressed = fread($out, 1024);
var_dump($compressed);

fwrite($in, 'Some big long string, take two.');
$compressed = fread($out, 1024);
var_dump($compressed);

fwrite($in, 'Some big long string - third time is the charm?');
$compressed = fread($out, 1024);
var_dump($compressed);

Вывод:

string(2) "x�"
string(0) ""
string(0) ""

Если я прокомментирую вызов stream _ filter _ append () , запись/считывание потока работает правильно, причем данные сбрасываются целиком все три раза, и если я направляю отфильтрованный поток zlib в файл, а не через пару сокетов, сжатые данные записываются правильно. Так что обе части функционируют правильно по отдельности, но не вместе. Это ошибка PHP, о которой я должен сообщить, или ошибка с моей стороны?

Этот вопрос ответвлен от решения этого связанного вопроса .

-121--1646861-

Как импортировать функцию из PYX-файла в python? Я пытаюсь запустить Hadoopy, у которого есть _main.pyx файла, и _main импорта завершается с модулем, не найденным в __ init __ .py. Я пытаюсь запустить это на OS X со стандартным питоном 2.7.

Я пытаюсь запустить Hadoopy, который имеет _main.pyx файла, и import _main не работает, модуль не найден в файле __ init __ .py.

Я пытаюсь запустить это на OS X со стандартным python 2.7.

11
задан Dolan Antenucci 22 September 2011 в 02:07
поделиться