次のような ASCII ファイルがあります。
36,36,0,1
36,36,0,2
...
私がやりたいのは、NetCat を使用して、すべての行を 1 つのバイナリ TCP セグメントのペイロードとして送信することです。
ファイルから数値をバイナリ表現に変換するには、Perl を使用します。print pack("c", <STDIN>);
これにより、ファイル全体を簡単に変換できます (数値ごとに)。送信方法もわかっていますcat file | netcat localhost 9999
が、このコマンドは、コンテンツ全体を 1 つのセグメントのペイロードとして送信します。
元のファイルのすべての行(バイナリに変換されたもの)を新しい TCP セグメントとして送信するにはどうすればよいですか?
答え1
はい、解決策を見つけました。
ファイルからのすべてのバイトを新しい TCP セグメントとして送信するにはn
、次のようなコマンドを使用できます。
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