串口传输文件,接收端文件为空的问题 c#vc++ 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 你当串口是什么?即使你采用tcp协议,也不可能把一个大文件整个一个包发出去,接收端直接收一个文件如果是tcp,你需要将文件拆成许多个包,接收后再重新拼接而如果是串口,你也需要先将文件拆成许多个包,然后每个包依次发送字节,接收端收到字节,重新组包,再收下一组不管用哪种方式,都不要想发送一次,接收一次,就可以. 多谢您指点,实际应用起来您的建议很对。目前我只是测试用byte写入文件的原理,测试的doc文件只有9k(内容只有18个字符),麻烦您看下,为什么我这样不能在接收端成功生成文件? 如果你是tcp,9k确实可以一个包直接传过去底层已经封装好方法,直接读取就可以把缓冲区中的数据一次性读取出来但是你是串口,串口是一个字节一个字节发送的,你也要循环接收,直到一定时间内串口缓冲区不再有数据为止 或者你给串口接收挂一个回调事件,等串口接到数据后会自动调用你的receive事件这样不用另开线程阻塞等待但是也不能保证只接收一次就接收到完整的信息 看不出有什么问题,在fs.Write后面加上一句fs.Flush()试下。 [分享]写了一个HttpPost压力测试的小工具 关于DataGridview C# 如何取得网络路径下的文件图标? linq的奇怪问题 操作Excel中的TextBox问题? 高手们,请问如何能让datagrid内部不接受TAB键? C#二维数组问题 ComboBox控件输入框能不能实现不能输入文字的功能? C#调用COM组件时的结构类型数据封送问题,报PInvoke 签名错误 C#中取出DatagridView中的值 请教:删除EXCEL操作无法完成,因为文件已在IIS Worker Process中打开。 今天要配置.net环境,将判断net版本写成dll方便开发
即使你采用tcp协议,也不可能把一个大文件整个一个包发出去,接收端直接收一个文件
如果是tcp,你需要将文件拆成许多个包,接收后再重新拼接
而如果是串口,你也需要先将文件拆成许多个包,然后每个包依次发送字节,接收端收到字节,重新组包,再收下一组不管用哪种方式,都不要想发送一次,接收一次,就可以.
多谢您指点,实际应用起来您的建议很对。目前我只是测试用byte写入文件的原理,测试的doc文件只有9k(内容只有18个字符),麻烦您看下,为什么我这样不能在接收端成功生成文件?
底层已经封装好方法,直接读取就可以把缓冲区中的数据一次性读取出来但是你是串口,串口是一个字节一个字节发送的,你也要循环接收,直到一定时间内串口缓冲区不再有数据为止
这样不用另开线程阻塞等待
但是也不能保证只接收一次就接收到完整的信息