“确定”消息的外观如何?

时间:2010-12-14 15:09:33

标签: tcp modbus

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

            Data
[ Client ]  == >  [ Server ]

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

            OK
[ Client ] < == [ Server ]

是否有标准的“确定”消息要返回?还有一条“错误”消息?它看起来怎么样? (例如“:0011”,“:110F”)

1 个答案:

答案 0 :(得分:1)

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

一些常见类型的协议是......

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

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