Отправить двоичный файл (построчно) на сервер сокетов с Netcat

Как спина кэтот вопрос переполнения стека Я хочу архивировать то же самое за исключением нескольких твиков.

Я хочу подключиться к хосту, отправить двоичный файл, построчно, и между каждой строкой будет задержка в пару секунд ... и он должен быть в том же соединении. Строки, которые я хочу отправить, в основном основаны на тексте, но в строке есть несколько непечатаемых символов.

Это пример строки / строки, которую я хочу отправить (тысячи строк на файл):

<null>e<null><null>00326513,6598,no,8,,2z<null>

<null> значение является значением HEX0x00.

Я переписал свой вопрос с первой записи, но@mzet ответил на мой первоначальный вопрос, так как тогда мой вопрос был только текстовым, но позже я обнаружил, что моя строка имела эти0x00 символы, внутри которых я не мог видеть сначала. Я хочу использовать его ответ в качестве основы, так как считаю, что он почти работает, но, возможно, потребуется подстройка, так что это его вклад, а не мой.

Если у меня есть файл с 3 строками:

<null>e<null><null>00370513,6598,no,8,,2z<null>
<null>f<null><null>00891548,6598,yes,8,,3z<null>
<null>f<null><null>00129525,6598,yes,8,,2z<null>

Я тогда подумал, что я могу настроить@mzet ответить и заменить<null> значения в моем файле с\x00 и установить-e наecho команда:

[root@srv]# mkfifo /tmp/fifoIn; cat /tmp/fifoIn | nc localhost 2222 &
[root@srv]# cat myfile | while read line; do echo -ne $line; sleep 2; done > /tmp/fifoIn

Когда я это делаю, я вижуx00 на стороне сервера:

[root@srv]# nc -l 2222
x00ex00x0000370513,6598,no,8,,2zx00
x00fx0000891548,6598,yes,8,,3zx00
x00fx00x0000129525,6598,yes,8,,2zx00

Можно ли отправить бинарный (текстовый) файл как я хочу? И если невозможно посылать файл построчно, возможно ли отправить одну строку несколько тысяч раз? Строго необходимо, чтобы они не были уникальными или находились в файле, поскольку я мог бы справиться с повторением одной и той же строки.

РЕДАКТИРОВАТЬ # 1

Почему мой сценарий отправляет только одну строку на сервер (я бы ожидал 4 строки), после этого он просто останавливается (?) Навсегда. Клиент (и сервер) закрывает соединение, но не приходит с ошибками:

rm -f /tmp/fifofile
mkfifo /tmp/fifofile
cat /tmp/fifofile | nc 192.168.20.6 5000 &
sleep 1

i="0"

while [ $i -lt 4 ]
do
  echo "$i"
  echo -ne "\x00e\x00\x00001212dsfdsfdsfsdfsdfsdfdsf\x00" | tee /tmp/fifofile
  sleep 1
  i=$[$i+1]
done

Ответы на вопрос(2)

Ваш ответ на вопрос