1

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

仅保留字符串终止并因此仅在有效负载缓冲区中附加多个字符串是否合法?

或者是否有一条规则说不,你不通过通信接口发送字符串终止?

谢谢

4

2 回答 2

2

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

于 2014-10-24T09:12:47.933 回答
1

您不会以您可能想到的形式通过这些协议发送“字符串”。您以文本或二进制形式发送原始字节。用 Qt 术语将它们视为QByteArrayQDataStream

您会在 Qt 框架中的QIODevice类周围找到这些类,它是任何“IO”的基类。然后,QtCore 中的这个基类在 QtSerialPort、QtBluetooth、QtNetwork 等模块中的子类中重新实现。

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

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

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

于 2014-10-24T09:04:45.963 回答