求购RS232C用VBMSOMM32发送二进制度文件的代码,提示也行,价格300左右,真实!
如果程序有效,马上给钱
我的MAIL:yumeet1979@hotmail.com
发送端和接收端的数据要进行核对.
现在限制接收端为二进制接受的模式下,
如果单次发送ASCII文件(文本文件等),接收正常,发送接收完成后,再次发送会出现有时接收数据不正常.
如果发送非ASCII文件,接收端的数据大小总小于传送过来的数据大小,也就是有丢失.
这个原因我一直无法找到,希望能提供帮助.
我这里的环境;
硬件>两台笔记本电脑,一根9针串口线
软件>WINDOWS20000PRO,VB6
------------------------------------------------------
我现在的传送思路:
设定传送文件的大小不大于10M
发送端:
设定发送端的Input Len为5
R Threshold: 为5
发送端先发送文件名,取选择的文件名的后8位发送
然后在发送端comSend_OnComm事件进行监视,COMEVRECEIVE事件发生时,
如果收到的字符串数据为"NAMED",说明接收方已经收到文件名,然后发送文件大小.
如果收到的字符串数据为"SIZED",说明接收方已经收到文件大小,然后开始发送文件内容
如果收到的字符串数据为数字,说明接收方已经开始收到文件内容,该数字为接收方该次收到的数据大小,
然后将该数字进行累加,判断累加的结果和文件大小相等,说明接收成功.
接收端
设定发送端的S Threshold: 为5
申明接收的次数为全局变量lngReceiveCount,Long型,初始化时为1
申明收到的文件名为全局变量strFileName,String型
申明收到的整个文件大小为全局变量lngFileSize,Long型
申明每次收到的数据大小为全局变量lngReceiveSize,Long型
申明文件是否打开标志为全局变量blnFileOpenFlag,Boolean型,初始化时为FALSE
comSend_OnComm事件进行监视,COMEVRECEIVE事件发生时
判断lngReceiveCount
为1的时候,说明发送过来的是文件名,将文件名保存为全局变量strFileName,设定lngReceiveCount=2.然后EXIT SUB
为2的时候,说明发送过来的是文件大小,将文件大小保存为全局变量lngFileSize,设定lngReceiveCount=3.然后EXIT SUB
为3的时候,说明发送过来的是文件内容,
blnFileOpenFlag为FALSE时,创建新文件strFileName,设定blnFileOpenFlag为TRUE
将本次收到的数据往strFileName写入
将本次收到的数据大小lngReceiveSize进行累加
如果lngReceiveSize和lngFileSize相等,说明收到了全部的文件内容,显示消息,.然后EXIT SUB
.用一定时器事件,每次COMEVRECEIVE事件发生后过了10秒后还没再次发生COMEVRECEIVE事件,
说明数据接收错误,超时了,显示消息,然后退出,再次将各变量初始化,准备再次接收另一文件数据
程序接下: