Alu*_*lun 6 performance networking netcat socat nc
我正在运行一些性能测试,并且我正在尝试将同一文件重复发送到套接字。
如果我做这样的事情:
$ socat -b1048576 -u OPEN:/dev/zero TCP4-LISTEN:9899,reuseaddr,fork
$ socat -b1048576 -u TCP:127.0.0.1:9899 OPEN:/dev/null
Run Code Online (Sandbox Code Playgroud)
然后用 1MB 缓冲区iftop
告诉我我正在推动 20Gbps。
但是,我真正想做的更像是:
$ socat -b1048576 -u OPEN:somefile.dat TCP4-LISTEN:9899,reuseaddr,fork
$ myprog TCP:127.0.0.1:9899 > /dev/null
Run Code Online (Sandbox Code Playgroud)
但它只会推动somefile.dat
一次,我真的很喜欢它rewind()
从头开始并再次发送。
假设您想在每个新连接上打开并发送相同的文件,您可以使用-U
、反向到-u
和反向地址,如下所示
socat -b1048576 -U TCP4-LISTEN:9899,reuseaddr,fork OPEN:somefile.dat
socat TCP:127.0.0.1:9899 - >/dev/null
Run Code Online (Sandbox Code Playgroud)
如果您希望文件无限重复,您可以使用以下内容:
socat -b1048576 -U TCP4-LISTEN:9899,reuseaddr,fork SYSTEM:'while cat somefile.dat;do \: ;done'
Run Code Online (Sandbox Code Playgroud)