У меня есть файл ASCII, который выглядит так:
36,36,0,1
36,36,0,2
...
Я хочу отправить каждую строку как полезную нагрузку одного двоичного сегмента TCP с помощью NetCat.
Для преобразования числа из файла в его двоичное представление я использую Perl, print pack("c", <STDIN>);
поэтому я могу легко преобразовать весь файл (число за числом). Я также знаю, как отправить его с помощью , cat file | netcat localhost 9999
но эта команда отправляет все содержимое как полезную нагрузку в одном сегменте.
Что можно сделать, чтобы отправить каждую строку исходного файла (преобразованного в двоичный) как новый TCP-сегмент?
решение1
Хорошо, я нашел решение.
Чтобы отправить каждый n
байт из файла как новый TCP-сегмент, можно использовать команду, аналогичную приведенной ниже:
for i in `seq 1 $num_of_segments`
do
head -c $i file_name | tail -c 1 | netcat localhost 9999
done
Опция -c n
в командах head
и tail
указывает, следует ли передавать по конвейеру первый или последний n
байт.