通过 netcat 发送号码

Send number via netcat

我想通过netcat发送一个号码。我不想发送数字的 ASCII 表示形式,而是数字的二进制版本(uint8、int32 等)。我在 Matlab 中打开了一个 UDP 端口,它正在等待接收号码。 Matlab的dsp.UDPReceiver只能接受['uint8'(默认)| 'double' | 'single' | 'int8' | 'int16' | 'uint16' | 'int32' | 'uint32' | 'logical']。仅供参考,我正在通过 UDP 将整数发送到进程以控制其中的某些操作。

我最初尝试过

echo 5 | netcat -u localhost 12345

但是接收器(在 Matlab 中)打印出 ans = uint8 53 因为 echo 的输出是字符串而不是数字 5 的二进制表示。我试过像这样使用 bc :

echo "obase=2;5" | bc -l|netcat -u localhost 12345

但得到结果 ans = uint8 49 因为 bc 返回二进制的 ASCII 版本而不是位本身。

如何通过netcat发送单个号码?

使用选项 -e echo 支持给定字节为十六进制或八进制。使用 -n 最后的换行符被抑制:

echo -n -e '\x05' | netcat ...