mount ecryptfs without sudo

Я подозреваю, что ваши буферы оболочки arecord выводят до того, как netcat сможет передать его дальше (когда клиент подключается). Для подтверждения попробуйте:

arecord | pv | netcat -l 10000 | aplay

В моем Ubuntu pv показывает, что arecord выдает не менее 60 Кбайт вывода (это занимает около 8 секунд), даже если нет подключения к netcat . Вы можете подозревать, что этот буфер реализован pv , но он не зависит от опции pv -B , поэтому я думаю, что это буфер оболочки для канала.

Я пробовал использовать stdbuf и unbuffer (последний из пакета expect-dev в моем Ubuntu), но результаты были неудовлетворительными.

Я добился значительного улучшения, когда использовал dd для сброса достаточного количества данных на стороне клиента :

arecord | netcat localhost 10000 | { dd bs=100K count=1 iflag=fullblock of=/dev/null; aplay; }

В моем случае 100K было достаточно; ваше измельчение может отличаться. Обратите внимание, что вам придется подождать несколько секунд для завершения dd , если вы запустите команду слишком рано (до того, как буфер будет заполнен на стороне сервера) или если параметр bs =… слишком большой.

4
04.06.2015, 23:28
0 ответов

Теги

Похожие вопросы