关于SPCOM接收数据包(.RAR)的问题----急!

godness 2005-09-11 02:37:17
我用SPCOM去接收串口发送上来的一个.rar文件包,文件包的大小大概是100kb左右,普通断的数据我是懂得怎么接收,现在是不知道接收这种压缩的文件包该怎么作呢?
在网络上一直找不到这样的例子,哪位好心的大哥能给我一些代码参考一下。不甚感激

还有一个问题就是同样用SPCOM怎么接收图片(.bmp或者.jpg格式)???
...全文
177 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
hexenzhou 2005-09-12
  • 打赏
  • 举报
回复
通常使用CRC校验来保证文件的完整性。
mtu207 2005-09-12
  • 打赏
  • 举报
回复
补充:
每一包数据都应该有校验和,并不是只是开始包有。
mtu207 2005-09-12
  • 打赏
  • 举报
回复
我没用过SPCOM,但用过mscomm发送接收数据,道理都是一样的。关键是你怎么定义通讯协议!
比如,开始先传文件的名称、大小、结束符、数据包校验和等,发送接收每一帧数据包时,判断校验和是否正确,如不正确,则请求发送方继续发送同一包数据。然后,根据文件的大小或结束符判断是否接收完毕。
godness 2005-09-12
  • 打赏
  • 举报
回复
那如何判断接收到的数据是否完整??
就是对于100k的文件串口传输完或者中途有异常,怎样判断接收到的数据是否是完整的。
chenylin 2005-09-11
  • 打赏
  • 举报
回复
将收到的数据存在一个内存流中,将该流存为文件即可.(大至是这样,随手写的)
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;
hexenzhou 2005-09-11
  • 打赏
  • 举报
回复
rar和普通的数据没有什么两样啊?就按照普通的数据的发送方式接受即可。

5,386

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧