По какой-то причине фильтр 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-
Я пытаюсь запустить Hadoopy, который имеет _main.pyx файла, и import _main
не работает, модуль не найден в файле __ init __ .py.
Я пытаюсь запустить это на OS X со стандартным python 2.7.