Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
man nc(1)
. Кроме того, вы описываете «старую» (ну или «классическую», если угодно) версию нетката (синтаксис -lp
, небезопасная опция -e
), которая отличается от современных реализаций (например, OpenBSD'шной); та же убунта, кстати, об этом сразу предупреждает:This is nc from the netcat-openbsd package. An alternative nc is available in the netcat-traditional package.Многие ваши примеры просто не заработают с дефолтной версией большинства актуальных дистрибутивов *nix.
Ну я бы не был так категоричен, у меня не запустился только пример с -e
остальные работают
-lp
, не заработают на FreeBSD (любых последних версий) и Ubuntu 10.04.4 LTS, однако на новой убунте и минте работают (и там из мануала исчезла приписка, что it is an error to use this option [-p] in conjunction with the -l option).-lp
там решили восстановить в правах, чтобы не анноить finger memory пользователей, привыкших к старому синтаксису, но 1) одними новыми линуксами мир *nix не ограничивается (пусть даже *BSD суммарно менее популярны, но вы же сами пишете, что netcat это утилита Unix), а значит 2) было бы не лишним рассказать об этих различиях.NetCat не очень интересен, гораздо интереснее трюки с socat (SOcket CAT), у него больше возможностей, у него не простая документация, в общем "вкусная" утилита.
Прием данных на UDP-порту и вывод принятых данных
$ nc -u localhost 7777
нехватает: -l Bind and listen for incoming connections
nc -lu localhost 7777
После первого сообщения вывод будет остановлен. Если необходимо принять несколько сообщений, то необходимо использовать while true:
Используйте опцию -k
Полезные трюки при работе с netcat