我按照这个post来检查netcat的速度 ,但在他的博客,当他做ctrl-c ,他得到的数据发送收到的字节。
在他的post中跑:
time yes|nc -v -v -n 192.168.0.8 2222 >/dev/null than after ctrl-c het get: sent 87478272, rcvd 0 real 0m9.993s user 0m2.075s sys 0m0.939s
当我做ctrl-c ,我没有得到这个数据。
如何通过netcat发送/接收数据?
实际上有两个netcat实现 , 最初由* Hobbit *实现 (在Debian / Ubuntu中称为netcat-traditional )和OpenBSD实现 (在Debian / Ubuntu中称为netcat-openbsd )。 在Debian / Ubuntu中,二进制文件分别被称为nc.traditional和nc.openbsd (而nc是通过备用系统的链接之一)。
你参考的博客文章是使用nc.traditional ,它显示退出时发送/接收的字节。 你可能正在使用nc.openbsd ,而不是。 安装传统的实现并明确地调用它。
% time yes | nc.traditional -vvn 127.0.0.1 10000 > /dev/null (UNKNOWN) [127.0.0.1] 10000 (webmin) open ^C sent 99422208, rcvd 0 yes 1,06s user 0,09s system 38% cpu 3,003 total
或者,如果您更喜欢使用nc.openbsd ,则可以将netcat在服务器端的输出传递给wc -c并像下面这样检查输出:
% nc -l -n -p 10000 | wc --bytes 99422208
您可以使用Pipe Viewer(pv)实用程序来观察stream的视觉进度。 可以对其进行修改以显示所选单位,并可在大多数分配中使用。
例:
cat largefile | pv | netcat 192.168.10.1000 1234