C++/Qt有效负载中的字符串终止

C++/Qt String Terminaton in payload

本文关键字:字符串 终止 负载 Qt 有效 C++      更新时间:2023-10-16

当通过IPC、串行、以太网等通信接口发送字符串时,程序员如何处理字符串终止,。。。

只保留字符串终止,从而在有效负载缓冲区中附加多个字符串,这合法吗?

或者是否有类似于"不"的规则,即不通过通信接口发送字符串终止?

感谢

通过任何接口进行通信,必须根据定义的协议进行。如果存在字符串终止规则,则这将由协议定义。如果您不是通过现有协议进行通信,则需要定义一个协议(即用户定义的协议)。在这里,您将定义如何以及是否终止字符串。

你不会像你想象的那样通过这些协议发送"字符串"。你可以以文本或二进制的形式发送原始字节。用Qt术语将它们想象成QByteArray或QDataStream。

您将在Qt框架中的QIODevicece类周围找到这些类,Qt框架是任何"IO"的基类。然后,QtCore中的这个基类在子类中重新实现,如QtSrialPort、QtBluetooth、QtNetwork等模块中。

一般来说,您的问题似乎更倾向于协议,即协议设计。如果是文本数据,则通常使用终止字符,或者甚至可以使用长度字段。终止字符也可以是任何取决于数据的字符,所以不仅仅是

例如,我们使用的协议,有时是'\n',有时是';'还有什么不是。这取决于你,但使用专用的终止字符是非常有效的,并且在那里被广泛使用,真的。

当然,当以二进制模式发送时,只能应用长度字段。