过去在测试某些多播连接时,我一直使用 socat 来执行此操作:
socat -u UDP4-RECVFROM:12345,add-membership=224.1.2.3:eth0,fork,reuseaddr,readbytes=32 SYSTEM:"hexdump -C"
Run Code Online (Sandbox Code Playgroud)
然后当我看到一些数据包或一两秒后我什么也看不到时,按 ctrl-c。
现在,当必须对数百个多播地址执行此操作时,尤其是当其中一些地址每秒发送数万个数据包时(负载比我按下 ctrl-c 快 5000),这显然变得不切实际。
如何限制socat只接收一个数据包然后退出?另外,如何设置未收到任何内容的超时(我尝试了 -T 参数,但似乎没有任何效果)