Z
zjgu99
Unregistered / Unconfirmed
GUEST, unregistred user!
请教个问题------------- 请问按下面的通讯协议要求,通过delphi7的winsoctet该如何实现呢?系统工作方式描述: 客户端PC上的控制程序Client用于向检测站服务器端的Server程序传送数据。数据传输采用帧格式传递。格式如下: 帧起始符(1字节)+ 数据包长度(4字节)+ 数据包(可变长度字节)+ 数据包结束符(1字节)+ 帧校验符(1字节)+ 帧结束符(1字节)其中各部分的含义为:① 帧起始符 : 帧起始符有两种选择,若为#$02(即16进制数0x02所对应的字符,下同),则表示传递的是测试数据,若为#$03, 则表示传递的是位置信息。② 数据包长度: 数据包长度为4字符长度,如长度为40个字节则用“0040”表示。③ 数据包: 数据包分两类,一类为位置信息,它的格式为: 当前触发位址(1字节)+设备号(16字节)+该设备测试次数(2字节) 其中当前触发位址字符为‘1’、‘2’、‘3’、‘4’、‘5’。 如果只有四个位置,则最大数字字符为‘5’,依次类推。 另一类为测试数据打包串。④ 数据结束符 固定为:#$17⑤ 帧校验符:STX^…^ETB checksum=帧起始符xor…xor数据包结束符。即数据包结束符及以前所有单字节的异或和。如果checksum等于#$0 或 ‘$’,则将checksum替换为#$18。⑥ 帧结束符。 固定为:‘$‘