【发布时间】:2020-02-20 21:14:55
【问题描述】:
我有几个参数,需要通过 TCP/IP 发送到客户端应用程序。
例如:
//inside C++ program
int Temp = 10;
int maxTemp = 100;
float Pressure = 2.3;
问题:格式化字符串的最佳做法是什么?我需要确保客户端接收到整个字符串,并且客户端应该更容易解码字符串。
基本上,我想知道,我要发送的字符串应该是什么格式?
PS:客户端应用程序是 C#,发件人的应用程序是 Qt (C++)。
【问题讨论】:
-
你是说XML还是JSON?
-
一种常见的方法是使用例如格式化有效负载json(或 protobuf,或 xml,或其他一些现成的序列化机制)。然后将每个数据包格式化为
[start character]/length/payload/[checksum]/[end character],其中方括号中的组件可能使用也可能不使用。 -
我的第一条规则是避免使用字符串进行存储、传输或检索。它是第二个最差的处理类型。只有原始字节更糟|我的第二条规则是:选择要在所有端点使用的固定文化格式和编码。 XML 会自动为您做到这一点。我认为 JSON 也是如此。处理这个问题是它们存在和使用的一个重要原因。 |您不想遇到编码 (joelonsoftware.com/2003/10/08/…) 或文化不匹配问题
-
@duDE:我将 C++ 程序中的参数值作为变量。
-
@Christopher:您的意思是我需要将参数值格式化为 XML 格式?还是我需要先将参数写入 XML 文件?