一协议:通过SOCKET通信:在DELPHI6下接受通过解码可以显示,接口方配合不当,一时发送老是报错,
采用TCP长连接,每个消息包含:1、二进制包头;2、包内容(xml格式)。
HeardFlag(int) Length(int) Sequence Ver Enc Rec
4 4 4 1 1 2
HeardFlag: 协议标识,固定为KSF$,4个字节。
Length: 消息长度,包头和包内容xml体的总长度,4个字节。
Sequence: 消息序号,4个字节。
Ver: 协议版本,1个字节,当前版本序号1。
Enc: 是否加密,1个字节,当前版本不加密0。
Rec: 保留字段,2个字节。
请教如何发送,如何把10进制的包头+XML内容长度放在4字节里显示,曾做10-16进制转换等都不对,可能理解错误,高手指点下如何转换,发送!在线等立马散分
采用TCP长连接,每个消息包含:1、二进制包头;2、包内容(xml格式)。
HeardFlag(int) Length(int) Sequence Ver Enc Rec
4 4 4 1 1 2
HeardFlag: 协议标识,固定为KSF$,4个字节。
Length: 消息长度,包头和包内容xml体的总长度,4个字节。
Sequence: 消息序号,4个字节。
Ver: 协议版本,1个字节,当前版本序号1。
Enc: 是否加密,1个字节,当前版本不加密0。
Rec: 保留字段,2个字节。
请教如何发送,如何把10进制的包头+XML内容长度放在4字节里显示,曾做10-16进制转换等都不对,可能理解错误,高手指点下如何转换,发送!在线等立马散分
b := ToBytes(aint);
r[4] := b[0];
r[5] := b[1];
r[6] := b[2];
r[7] := b[3];function ToBytes(const AValue: Integer): Tbytes;
begin
SetLength(Result, SizeOf(Integer));
PInteger(@Result[0])^ := AValue;
end;