ASCII ファイルの行を NetCat のバイナリ パケットに変換する

ASCII ファイルの行を NetCat のバイナリ パケットに変換する

次のような 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のオプションは、パイプの最初または最後のバイトに指示します。headtailn

関連情報