Есть ли решение для создания интерактивного TCP/UDP сервера под Linux?

Разумно спросить, почему команда DD сначала не проверяет, содержит ли ее цель установленной файловой системы, а затем пригласить подтверждение или требует специального флага. Один простой ответ заключается в том, что он нарушит любые сценарии, которые ожидают, что смогут использовать DD таким образом, и что не предназначены для обработки интерактивного ввода. Например, можно разумно изменить таблицу разбиения необработанного устройства, в то время как установлен раздел того же устройства; Вы просто должны быть осторожны, чтобы изменить только первый сектор.

В дикой природе есть огромное количество систем Linux, и нельзя знать, какие сумасшедшие насадки люди придумали люди. Таким образом, сопровождающие DD очень вряд ли будут делать несовместимые несовместимые изменения, которые вызовут проблемы для неизвестного количества сред.

0
01.08.2019, 09:35
4 ответа

Там есть патч для socat v.2.0.0.b8, который делает это возможным.

0
28.01.2020, 02:14

попробуйте nc

from man nc

nc - произвольные соединения TCP и UDP и прослушивание

5
28.01.2020, 02:14

Возможно, вас заинтересует sendip , его веб-сайт: http://snad.ncsl.nist.gov/ipv6 /sendip.html

С сайта:

Q: Как обрабатываются строковые и числовые аргументы? A: Многие поля заголовка и область пакетных данных можно указать с помощью следующего синтаксиса:

  • 0xXXXX - интерпретируется как шестнадцатеричное число, преобразованное в двоичное число в сетевом порядке байтов.
  • 0XXXX - интерпретируется как восьмеричное число, преобразованное в двоичное число в сетевом порядке байтов.
  • rN - N «случайных» байтов
  • zN - N nul (нулевых) байтов
  • fF - прочитать аргумент из следующей строки в файле F
  • другой - взять как буквальную строку
0
28.01.2020, 02:14

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

socat TCP4-LISTEN:3344,reuseaddr,fork  EXEC:/tmp/runme,pty

выполнит сценарий /tmp/runme , например:

#!/bin/bash
trap 'echo sigterm >&2;exit' TERM
echo "start" >&2
while read line
do  echo "got $line"
done

, в котором можно сделать то, что вы любите с данными, такой как здесь возврат его с префиксом "добрался". Можно протестировать это с, например, telnet localhost 3344 или

echo hi | socat - TCP4:localhost:3344

, Если необходимо сделать то же с udp, можно вместо этого попробовать, например:

socat UDP-RECVFROM:3344,fork  EXEC:/tmp/runme,pty

вы будете только переданы один пакет, но вы все еще получаете любой ответ. Протестировать его с, например:

echo hi | socat - UDP-SENDTO:localhost:3344

, Если все вы хотите сделать, отреагировали на ваши данные, эта функция встроена в xinetd, и вы только должны включить эхо сервис. См. человек xinetd.conf .

, Если вы хотите получить статистику пропускной способности, посмотрите инструмент netperf .

2
28.01.2020, 02:14

Теги

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