Назад | Перейти на главную страницу

Как перенаправить ответ udp с помощью netcat

Аналогичный вопрос к Как получить ответ udp с помощью netcat за исключением того, что OP был удовлетворен интерактивным использованием nc (и у меня пока нет репутации, чтобы комментировать!)

Мне нужно написать сценарий bash и обработать ответ. Как следует изменить приведенный ниже код, чтобы получить ответ в файле response.txt или иным образом захватить ответ для последующих строк кода в bash?

echo "request" | nc -u 1.1.1.1 9999 > response.txt

Серверу может потребоваться несколько секунд или даже минут для генерации ответа и ответа. Когда я пытаюсь сделать следующее, я сразу же возвращаюсь в командную строку, а response.txt пуст.

echo "request" | nc -u 1.1.1.1 9999 | tee response.txt

(Я действительно подтвердил, что запуск nc -u 1.1.1.1 9999 и ввод «запроса» в отдельной строке возвращает ожидаемый ответ. Но как его захватить?)

Заранее спасибо!

Когда я попробовал nc команда, которую вы использовали, зависла и никогда не выходила. Итак, я добавил -q 2 возможность тайм-аута через 2 секунды, и это работает для меня:

chicks@silver 17:34:54 ~ !548 $ echo "foo" | nc -u 127.0.0.1 7777 -q 2 > /tmp/z
chicks@silver 17:34:59 ~ !549 $ cat /tmp/z
foo

Так что вам просто нужно выбрать тайм-аут, с которым можно жить. :)