对SPCOMM控件熟悉的朋友来讨论一下,谢谢

hy0425 2003-12-07 03:29:53
我在使用SPCOMM控件时,一次发送大于65536字节的文件时,接收方出现错误(文件小于这个范围时接收方是正确的)!可是当我把大于65536字节的文件分几次发送,问题依旧!!当我用DCB时,发送大于65536字节的文件给接收方是正确的!!欢迎大家讨论!

...全文
31 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
wangxiangsjz 2003-12-10
  • 打赏
  • 举报
回复
应该分块进行校验,错哪一块,就重发那一块。每块长度要小与缓冲区长度。
hy0425 2003-12-10
  • 打赏
  • 举报
回复
continue
hy0425 2003-12-09
  • 打赏
  • 举报
回复
continue
kingcaiyao 2003-12-08
  • 打赏
  • 举报
回复
我上面已经说到了两个原因:循环发送也出错,是因为SPCOMM的写超时设置有问题。
ywpower 2003-12-08
  • 打赏
  • 举报
回复
DCB也是一个串口控件吗?
hy0425 2003-12-08
  • 打赏
  • 举报
回复
TO:kingcaiyao(AKing)

串口的输入,输出缓冲区长度小于64k,这个应该是这样!问题是我用一个for循环来减少每次发送的字节数,为什么也不行呢!?

TO:CCLIS(www.cclis.com)

感觉DCB并不是很麻烦,是不错,但是当一个串口需要用延时解决问题,就回变得很复杂了!

TO:wangxiangsjz(王翔)

分块发送时,可以等接受方发回一个确认信号后再发下一个块。程序不可能这样,因为还没有到确认的时候,整个文件发完之后才能等待回应!!
pzoon 2003-12-07
  • 打赏
  • 举报
回复
UP
wangxiangsjz 2003-12-07
  • 打赏
  • 举报
回复
1、SPCOMM的默认数据缓冲区是2048字节。如果写缓冲的速度过快,可能会发生丢数据。
2、分块发送时,可以等接受方发回一个确认信号后再发下一个块。
3、接受方对收到的块要进行校验。
CCLIS 2003-12-07
  • 打赏
  • 举报
回复
没用过SPCOMM,感觉DCB并不是很麻烦。
kingcaiyao 2003-12-07
  • 打赏
  • 举报
回复
SPCOMM是一个串口控件,之所以出现发送的数据长度大于64K时(一次发会出现错误),我想有两个方面的原因:
1.串口的输入,输出缓冲区长度小于64k,当然我指的是你一次性将64k全部发送。
2.还有一个原因可能就是串口的超时设置,但我认为第一个方面的原因可能性较大。
wangxd 2003-12-07
  • 打赏
  • 举报
回复
据说不错。不过你分包传送按理说应该没问题的啊
constantine 2003-12-07
  • 打赏
  • 举报
回复
我也是
叶子哟 2003-12-07
  • 打赏
  • 举报
回复
没用过,只知道是串口的控件

1,316

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder 网络及通讯开发
社区管理员
  • 网络及通讯开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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