我有两个程序通过 TCP/IP 通过交换命令和数据相互通信(连接已经成功)。我正在寻找一种协议,通过它我可以交换命令(ASCII)和二进制数据(float、double、int、char、wchar_t 等......)。
有没有我可以使用的标准?还是我应该发明自己的交换协议?
该程序是用 C++ 和 Qt 编写的。
我有两个程序通过 TCP/IP 通过交换命令和数据相互通信(连接已经成功)。我正在寻找一种协议,通过它我可以交换命令(ASCII)和二进制数据(float、double、int、char、wchar_t 等......)。
有没有我可以使用的标准?还是我应该发明自己的交换协议?
该程序是用 C++ 和 Qt 编写的。
如果您使用的是 Qt,这可能会有所帮助。
通常,您应该选择逐字节格式,然后在套接字的每一侧进行序列化和反序列化。否则,您最终会遇到操作系统(通常是 32 位与 64 位系统)之间字节顺序或大小不同的问题。
我建议使用 header+data 来描述这类消息。在标头中,您可以拥有例如消息类型字段,并且根据其值您可以转换数据的内容。我认为实现起来并不复杂。当你有这个时,你可以通过任何你想要的交换这样的结构(例如 QDataStream)
如果您使用的是 Qt,请查看QDataStream
http://doc.qt.io/qt-4.8/qdatastream.html