MsComm数据传输的控制

kaput 2000-04-01 12:23:00
我用MsComm传输二进制文件时,在开始正文传送前发送了一个标记串,接收端收到该串后把InputMode设置为二进制,但接收端往往同时接收到该串和正文的内容,无法把二者分开,这样造成正文的前部分丢失。我在次设置端点调试时又完全正常,因此在发送正文前我强制等待一会儿,还是无法解决问题?另外发送完后,接收端有时会接收不完剩一些?在OnComm事件中读取Modem缓冲区数据时我发现必须强制加一些时间延迟才能正常读完?(InputLen已经设置为0)请教专家如何解决问题?
...全文
178 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
fzb 2001-03-22
  • 打赏
  • 举报
回复
关注!
Un1 2000-04-03
  • 打赏
  • 举报
回复
延时问题我认为可能和你的 RThreshold 属性设置有关。另外,在MSComm中调Output属性时,其内部使用 SafeArray 操作,如果写入大量数据,将造成一定延时。建议最好抛弃传统COM->MODEM编程方法,使用RAS+Winsock。
kaput 2000-04-01
  • 打赏
  • 举报
回复
如何解释时间延迟问题?是否Modem有问题?有无Mscomm成功应用的例子?(不用API)
Un1 2000-04-01
  • 打赏
  • 举报
回复
全部使用二进制方式传送, 传送文本前先使用比特数组转换:

Dim s As String
s="dsfsdfdsfsdfds"

Dim bt() As Byte
bt = s

MSComm1.OutPut = bt

接收时:

bt = MSComm1.Input

s = bt

这样可以避开 UniCode 转换.

7,759

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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