【问题标题】:Send number via netcat通过 netcat 发送号码
【发布时间】:2022-01-06 22:48:48
【问题描述】:

我想通过 netcat 发送一个号码。我不想发送数字的 ASCII 表示,而是数字的二进制版本(uint8、int32 等)。我在 Matlab 中打开了一个等待接收号码的 UDP 端口。 Matlab 的dsp.UDPReceiver 只能接受 ['uint8' (default) | '双' | '单身' | 'int8' | 'int16' | 'uint16' | 'int32' | 'uint32' | '逻辑']。仅供参考,我通过 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 发送单个号码?

【问题讨论】:

    标签: matlab unix udp netcat


    【解决方案1】:

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

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

    【讨论】:

    • 宾果游戏。这完美地工作。谢谢。
    猜你喜欢
    • 2016-09-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-17
    • 2012-07-20
    • 1970-01-01
    • 2020-10-20
    相关资源
    最近更新 更多