pack:packed array of char; setlength(pack,sizeof(br))
CopyMemory(@pack,@br.header.Packet_Length,4);
CopyMemory(@pack[4],@br.header.CMDID,4);
CopyMemory(@pack[8],@br.header.CMD_Status,4);
CopyMemory(@pack[12],@br.header.SeqNo,4);
CopyMemory(@pack[16],@br.body,sizeof(br.body)); if sStream.Write(pack, sizeof(br)) <> sizeof(br) then begin
socket.Close;
exit;
end;向套接字写的时候,如果PACK是个静态数组就可以正确的将包写到另一端
如果象上面 PACK是声明的动态数组,分配之后 将内容COPY进去在用SSTREAM写过去
就不正确如果将动态数组写入SOCKET?
CopyMemory(@pack,@br.header.Packet_Length,4);
CopyMemory(@pack[4],@br.header.CMDID,4);
CopyMemory(@pack[8],@br.header.CMD_Status,4);
CopyMemory(@pack[12],@br.header.SeqNo,4);
CopyMemory(@pack[16],@br.body,sizeof(br.body)); if sStream.Write(pack, sizeof(br)) <> sizeof(br) then begin
socket.Close;
exit;
end;向套接字写的时候,如果PACK是个静态数组就可以正确的将包写到另一端
如果象上面 PACK是声明的动态数组,分配之后 将内容COPY进去在用SSTREAM写过去
就不正确如果将动态数组写入SOCKET?
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货