Передача Netcat UDP никогда не останавливается, пока не будет завершена с помощью CTRL + C

Я пытаюсь отправить данные через машину, используя Netcat , используя UDP вместо TCP .

Теперь, в отличие от TCP (Netcat через TCP), который использовался для отметки завершения передачи файла путем выхода из процесса nc , процесс UDP (Netcat over UDP) никогда не завершается, если не выполняется принудительно с помощью CTRL + C

Пример

$ pv upd_mnl_client.rb | nc -u 192.168.1.117 5555

385 B 0:00:00 [39,8kB / s] [========================== ========================================>] 100%
^ C ## Я должен сделать это, потому что процесс никогда не завершается

Любая подсказка, что мне не хватает выше.

-1
задан 25 November 2015 в 14:46
2 ответа

Вы не указали - только для отправки , поэтому у него нет возможности узнать, действительно ли вы Приняли. Если вы хотите, чтобы он тоже получал данные, вам придется сообщить об этом, когда закончите. Если вы не хотите, чтобы он получал данные, укажите - только для отправки .

4
ответ дан 5 December 2019 в 19:07

Для этого можно использовать функцию тайм-аута UDP. Например:

nc -ul -i5 <port>

Это приведет к отключению приемника UDP через 5 секунд.

0
ответ дан 5 December 2019 в 19:07

Теги

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