首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

TCP包是一个包含动态数组的的记录结构,这种数据包如何发送呀

2012-09-27 
TCP包是一个包含动态数组的的记录结构,这种数据包怎么发送呀!//图片的相关信息项TInfomationData packed

TCP包是一个包含动态数组的的记录结构,这种数据包怎么发送呀!
//图片的相关信息项
  TInfomationData = packed record
  TakeTime: string[28];//拍照时间
  TakeAdr: string[50];//拍照地点
  TakePixel: string[10];//拍照像素
  ImageName: string[50]; //图片名
  end;
  PInfomationData = ^TInfomationData;

  //TCP数据包
  TTCPData = packed record
  tdType: Word;//包类型
  tdLength: Cardinal;//数据项长度(tdInfo + tdPicture )
  tdInfo: TInfomationData;
  tdPicture: array of byte;//存放图片数据
  end;
  PTCPData = ^ TTCPData;

使用Delphi7中的Indy 9.0(TIdTCPClient TIdTCPServer)
客户端主体代码:
Var
  TCPData: TTCPData;
  InfoData: TInfomationData;
  ……
Begin
  给InfoData各成员赋了值后
FS := TFileStream.Create(PathFileName, fmOpenRead or fmShareExclusive);
  TCPData. tdType := 1100;
  TCPData. tdLength := Sizeof(InfoData) + FS.Size;
  TCPData. tdInfo := InfoData;

  SetLength(TCPData. tdPicture, FS.Size);
  FS.Position := 0;
  FS.ReadBuffer(TCPData. tdPicture [0], FS.Size);//这步可以成功将图片数据读进tdPicture

  Client.WriteBuffer(TLVData, SizeOf(TLVData), true);
  //这样发送只把tdPicture的地址发送了过去,并没把其中的图片数据发送过去
End;
请问各位大侠,这种情况应该如何才能成功地将图片数据连同TCP数据包一起发送成功呢?


[解决办法]
发送的数据包
是不是完整的。。


[解决办法]
TCP数据包包含图片信息tdInfo: PInfomationData; 只发送TCP数据包就是了

热点排行