重定向到/ dev / udp时,如何强制将包含换行符的数据包作为单个数据包?

时间:2013-11-10 06:57:35

标签: bash shell udp ipv4

最简单的例子如下:

echo -e "\n\n\n" > /dev/udp/192.168.45.45/9875

用tcpdump来看,它实际上发送了4个数据包。如果我需要发送一个由十六进制(有效载荷)0a0a0a组成的数据包,可以使用/ dev / udp设备吗?

2 个答案:

答案 0 :(得分:3)

我尝试了这个,它似乎只发送了一个包含四个(=包含尾随换行符)字符的数据包:

echo -e "\n\n\n" >/tmp/foo
cat /tmp/foo > /dev/udp/10.211.55.9/42000

问题似乎是在echo而不是/ dev / udp中。

希望这会有所帮助。 哈努哈利

答案 1 :(得分:3)

您可以使用\n选项消除最终-n

echo -n -e "\n\n\n" > /dev/udp/192.168.45.45/9875