0

我有一个将数据发送到服务器的设备。

            Data
[ Client ]  == >  [ Server ]

在服务器上验证后,我想返回一条消息:

            OK
[ Client ] < == [ Server ]

是否有标准的“OK”消息返回?还有“错误”消息?它看起来怎么样?(例如“:0011”、“:110F”)

4

1 回答 1

1

您必须设计一个应用程序级协议。TCP 是一个字节流,因此即使在客户端-> 服务器部分中定义“数据”也需要一些协议,以便接收者可以知道哪些字节组成了数据(何时停止读取)。

几种常见的协议类型是......

  • 长度分隔的块。每条消息都以 16 或 32 位长度的前缀开头。然后是很多字节。长度需要按照定义的字节顺序(参见htons、ntohs 等)。使用此协议的每个人都知道读取长度前缀然后读取那么多字节。在网络上定义了“块”之后,您可以在块的内容上放置一个标头。可能是消息类型(ACK、NAK、数据等),后跟一些内容。
  • ASCII 换行符分隔。每条消息都是一行 ASCII(或 UTF8 等)文本。它以换行符结束。行的换行符结尾与上述块的长度前缀的作用相同。然后定义每行的内容(如空格或逗号分隔的 ASCII/UTF8/任何字段)。在某个地方,您可以定义数据的外观、ACK 等。

我相信您可以提出其他想法,但这是基本工作:在 TCP 的字节流之上定义您的应用程序级协议。

于 2010-12-14T17:35:47.183 回答