Я хочу, чтобы UDP-эхо-сервер получал пакеты и отвечал точно, что он получил. Как я могу просто сделать это с помощью netcat
или socat
? Он должен оставаться живым вечно и обрабатывать пакеты, приходящие с нескольких хостов.
netcat
socat
echoserver
Мухаммед Хедаяти
источник
источник
Ответы:
Другим инструментом, похожим на netcat, является версия nmap
ncat
, в которой есть множество встроенных полезностей для упрощения подобных вещей. Это будет работать:-e означает, что он выполняет / bin / cat (чтобы отразить то, что вы
печатаете ) -k означает keep-alive, что он продолжает слушать после каждого соединения
-u означает, что udp
-l 1235 означает, что он прослушивает порт 1235
источник
Я использовал
socat -v PIPE udp-recvfrom:5553,fork
для запуска сервера иsocat - udp:localhost:5553
для клиентов. Это была отличная помощь!источник
socat TCP4-LISTEN:2000,fork EXEC:cat
Вы также можете использовать socat (вместо netcat) в качестве эхо-сервера и netcat в качестве клиента.
Эхо-сервер Socat (прослушивает TCP-порт 1234):
Клиент Netcat (подключается к serverip через TCP-порт 1234):
источник
Вы можете написать программу на C, которая разветвляется,
nc -u -l -p 4321
а затем использует dup (2) для подключения:Затем в бесконечном цикле родитель читает из стандартного ввода и записывает в стандартный вывод все, что читает родитель.
источник
socat -v PIPE UDP-LISTEN:5555,fork
, но второе соединение получает отказ. Кстати, он отлично работает с TCP-LISTEN. Я избегаю кодировать, иначе я мог бы написать все это на языке C.Если вы работаете в Windows и используете unix-подобную среду, такую как cygwin, netcat migth не предоставляет параметр -e. Это работало очень хорошо для меня.
http://bansky.net/echotool/
источник
netcat
решение предварительно установлено в Ubunutunetcat
Предварительно установлено в Ubuntu 16.04 поставляется сnetcat-openbsd
, и не имеют-c
опций, но руководство дает решение:Тогда пример клиента:
TODO: как изменить значение входной строки? Следующее не возвращает никакого ответа:
Однако пример удаленной оболочки работает:
Я просто не знаю, как обращаться с параллельными запросами.
источник