2013-02-27 73 views
1

通信协议我有两个程序,彼此通过TCP/IP通过交换命令和数据(连接已成功的)通信。我正在寻找一种协议,我可以通过它交换命令(ASCII)和二进制数据(float,double,int,char,wchar_t等)。标准字节用于数据传输

有一些标准是,我可以使用?还是应该创造我自己的协议来交换内容?

该程序是用C++和Qt。

+0

@ user1929959对不起,那不是我的问题。在交换字节时,我正在询问一种在客户端和服务器之间正确解释数据的方法。 – 2013-02-27 10:49:04

回答

1
+0

谢谢你的回复。 QDataStream盲目传输字节而不固定类型。我的问题是,客户如何知道服务器发送的数据类型。有没有一个已知的协议呢? – 2013-02-27 11:15:41

+0

@SamerAfach你真的需要发送类型吗?例如,如果你发送了一些命令,你知道它是参数,你可以直接读取这些类型。你能否证明你的需求? – kassak 2013-02-27 11:35:37

+0

我可能需要通过此连接发送单个或整数,双精度,字符串或任何其他数组。另一方必须收到信息并正确解释并存储,并将其用于绘图或任何其他任务。 – 2013-02-27 11:37:38

1

我会建议使用头+数据来描述这些类型的消息。 在标题中你可以有例如一个消息类型字段,并根据其值可以投射数据的内容。 我认为实施并不复杂。 当你有这个,你可以像这样通过任何你想要的(例如QDataStream)

1

如果你使用Qt,this可能是有益的交换结构。

一般情况下,你应该选择一个逐字节格式,然后进行序列化和反序列化到该对插座的两侧。否则,您最终会遇到操作系统(通常是32位与64位系统)之间的字节顺序或大小不一的问题。