socat / ncatを介してファイルの内容をソケットに繰り返し送信する方法

socat / ncatを介してファイルの内容をソケットに繰り返し送信する方法

いくつかのパフォーマンステストを実行しており、同じファイルをソケットに繰り返し送信しようとしています。

私が次のことをするなら:

$ socat -b1048576 -u OPEN:/dev/zero TCP4-LISTEN:9899,reuseaddr,fork 
$ socat -b1048576 -u TCP:127.0.0.1:9899 OPEN:/dev/null

その後、1MBのバッファはiftop20Gbpsを推進していることを伝えます。

しかし、私が本当にやりたいことは次のとおりです。

$ socat -b1048576 -u OPEN:somefile.dat TCP4-LISTEN:9899,reuseaddr,fork 
$ myprog TCP:127.0.0.1:9899 > /dev/null

ところで一度だけ押されて本当に最初まで押して再送しsomefile.datたいです。rewind()

ベストアンサー1

すべての新しい接続で同じファイルを開いて転送すると、次のように-U反対方向-uと反転アドレスを使用できます。

socat -b1048576 -U TCP4-LISTEN:9899,reuseaddr,fork OPEN:somefile.dat
socat TCP:127.0.0.1:9899 - >/dev/null

ファイルを複製したい場合無期限、次のように使用できます。

socat -b1048576 -U TCP4-LISTEN:9899,reuseaddr,fork SYSTEM:'while cat somefile.dat;do \: ;done'

おすすめ記事