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