用于数据传输的标准字节通信协议

时间:2013-02-27 10:39:35

标签: c++ qt tcp protocols network-protocols

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

是否有一些标准,我可以使用?或者我应该发明自己的协议来交换东西?

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

3 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:1)

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

答案 2 :(得分:1)

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

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