您的位置:程序门 -> delphi -> 网络通信/分布式开发



delphiudp协议分包收包的问题


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


delphiudp协议分包收包的问题[已结贴,结贴人:kendychong]
发表于:2008-01-21 20:24:46 楼主
现在有这样的结构体  
id:   dword   //编号  
len:   dword   //包总长度  
video:   array[0..64000]of   byte   //视频数据  

常规包不超过4000字节直接发送,超过4000的分两包发送,发送的时候len/2每个包,第二个包结尾处加了[end]括号里面几个字符。  
我知道怎么发,可是我不知道怎么收,请大侠们赐教!  

十分感谢,谢谢谢谢再谢谢!
发表于:2008-01-21 20:34:471楼 得分:0
一般最大也不会超过6000字节的,所以只拆成两个包
发表于:2008-01-21 21:10:472楼 得分:20
直接发得,

  id   =   1   ,len   =   4000,   data   =   4000byte


var  
    sbuf   :   array[0..4005]   of   byte;
    i         :   integer;
begin
    sbuf[0]   :=   id;
    sbuf[1]   :=   hi(len)   ;
    sbuf[2]   :=   lo(len);
    //以下填入数据
    for   i:=0   to   3999   do  
    begin
        sbuf[i+3]   :=   data[i];   //数据数组
    end;
   
    if   最后一包
      sbuf[3+4000]   :=   ord('e')     ;
      sbuf[3+4000+1]   :=   ord('n')     ;
      sbuf[3+4000+2]   :=   ord('d')     ;

    sendbuffer(sbuf,数据长度)

end;


快速检索

最新资讯
热门点击