我用SPCOM去接收串口发送上来的一个.rar文件包,文件包的大小大概是100kb左右,普通断的数据我是懂得怎么接收,现在是不知道接收这种压缩的文件包该怎么作呢?
在网络上一直找不到这样的例子,哪位好心的大哥能给我一些代码参考一下。不甚感激还有一个问题就是同样用SPCOM怎么接收图片(.bmp或者.jpg格式)???

解决方案 »

  1.   

    rar和普通的数据没有什么两样啊?就按照普通的数据的发送方式接受即可。
      

  2.   

    将收到的数据存在一个内存流中,将该流存为文件即可.(大至是这样,随手写的)
    var
      Form1: TForm1;
      Mrar:TMemoryStream;
    implementation{$R *.dfm}procedure TForm1.Comm1ReceiveData(Sender: TObject; Buffer: Pointer;
      BufferLength: Word);
    begin
      if Mrar.Write(Buffer^,bufferlength)<=10 then
        begin
        Mrar.SaveToFile('c:\a.rar');
        mrar.Free;
        end;
    end;
      

  3.   

    我没用过SPCOM,但用过mscomm发送接收数据,道理都是一样的。关键是你怎么定义通讯协议!
    比如,开始先传文件的名称、大小、结束符、数据包校验和等,发送接收每一帧数据包时,判断校验和是否正确,如不正确,则请求发送方继续发送同一包数据。然后,根据文件的大小或结束符判断是否接收完毕。
      

  4.   

    通常使用CRC校验来保证文件的完整性。