1

我有两个程序通过 TCP/IP 通过交换命令和数据相互通信(连接已经成功)。我正在寻找一种协议,通过它我可以交换命令(ASCII)和二进制数据(float、double、int、char、wchar_t 等......)。

有没有我可以使用的标准?还是我应该发明自己的交换协议?

该程序是用 C++ 和 Qt 编写的。

4

3 回答 3

1

如果您使用的是 Qt,可能会有所帮助。

通常,您应该选择逐字节格式,然后在套接字的每一侧进行序列化和反序列化。否则,您最终会遇到操作系统(通常是 32 位与 64 位系统)之间字节顺序或大小不同的问题。

于 2013-02-27T12:07:59.877 回答
1

我建议使用 header+data 来描述这类消息。在标头中,您可以拥有例如消息类型字段,并且根据其值您可以转换数据的内容。我认为实现起来并不复杂。当你有这个时,你可以通过任何你想要的交换这样的结构(例如 QDataStream)

于 2013-02-27T12:00:47.217 回答
1

如果您使用的是 Qt,请查看QDataStream http://doc.qt.io/qt-4.8/qdatastream.html

示例:http ://doc.qt.io/qt-4.8/qt4-network.html

于 2013-02-27T11:07:02.457 回答