【发布时间】:2015-03-31 11:24:16
【问题描述】:
你好,你可以看到我是新来的(在 C++ 和 Qt 中)。
请帮助我,我想通过 UDP 将一些命令从我的应用程序发送到 X-Plane(飞行模拟器)。简而言之,我需要这样发送消息:
DREF0XXXXsim/joystick/yoke_roll_ratio
其中 XXXX 是四个字节的浮点值。 问题是,当我发送像 0 或 0.5 这样的浮点值时,在这些值中,一些字节为 0(?)并且 c++ 认为这是消息的结尾。
我使用 memcpy 将浮点值更改为 4 个字节(字符),但如果其中一些是 0 我的消息结束。
其他值(例如 0.1、0.2 等)都可以。我发现我可以将零更改为例如1 但在这种情况下,当我发送 0.5 值时,我收到 0.50392(当我发送 0.4 时,我收到 0.4000000)。
我使用 Qt 库和这个函数来发送数据:
socket->writeDatagram(const char * data, qint64 size, const QHostAddress & address, quint16 port)
问题是 - 如何发送零字节或浮点值,如 0.5 或 0?
【问题讨论】: