Я имел сталкивающийся с этой проблемой также. Основная проблема netcat
. Это - большой инструмент, но это закрывает соединение, когда одни из его связанных дескрипторов файлов ввода или вывода закрываются. Это ничего не делает, когда сервер не слушает, и это выходит, когда другой одноранговый узел закрывается. Пока Вы устанавливаете сервер правильно и сохраняете Ваши дескрипторы файлов открытыми, он будет работать. Например, я протестировал следующий сценарий, и он работал очень хорошо: в установке терминала сервер эха (я настроил его как ниже):
mkfifo loopFF
netcat -t -l -p 4000 <loopFF | tee loopFF
теперь в другом терминале устанавливают Ваше соединение FIFO с Вашим сервером:
mkfifo in
mkfifo out
netcat 127.0.0.1 4000 <out >in &
распечатайте любой сервер, отправляет Вам (и поддерживайте его в рабочем состоянии, если Вы используете in
первым прибыл, первым обслужен в приложении, которое закрывает один конец после его завершения, netcat
закрывает соединение),
cat in &
и в том же терминале:
cat > out
теперь независимо от того, что Вы вводите, будет распечатан снова (после того, как удар Входит). Закрытие этой команды также закроет соединение.
unsetopt ALWAYS_LAST_PROMPT
даст Вам эффект, но может влиять на определенные настройки завершения меню.