永发信息网

VB用WinSock传输文件

答案:2  悬赏:80  手机版
解决时间 2021-03-04 07:38
  • 提问者网友:星軌
  • 2021-03-03 23:45
请高手指点:我用VB的WinSock写了一个文件传输功能,但传到服务器上的文件总是接收不完整,传到本机就没问题,本人查了几天没查出来,只能请教高手了
最佳答案
  • 五星知识达人网友:动情书生
  • 2021-03-03 23:51
你的文件传输程序还在开发初期,本机就是在几乎完全理想的网络上是可以成功的,一旦在两台不同的电脑间传输,你的文件传输程序的问题就暴露出来了。
因没有看到你的源代码,很难一下就诊断出你的程序到底存在什么问题。
一般你要注意的要点是:
1. 每包长度不超过1500字节, 最好在1k以下
2. 发出第一包,等待确认包
3. 收到一包,完成校验报文,保存好一包后,回个含包号的确认
4. 收到确认包发下一包,超时没收到确认,重发同一包
5. 这样循环,直到传完为止
你可以用传输自己特制的诊断文件,来快速诊断你程序的问题所在,比如做个文件第一包全1,第二包全2.。。。第十包全0, 第十一包全a,  。。。第36包全z, 第37包全A,。。。第72包全Z。 然后反复发送这个文件,这样,收到的文件打开看一眼就看出少了什么,然后检查相关的程序。
全部回答
  • 1楼网友:不如潦草
  • 2021-03-04 00:33
ls,谦虚的前提是确信能解决问题,乱搜索粘贴只会浪费手机党流量。 winsock会用么?会用你就成功了一半。 说说思路好了 1.传送文件列表 2.把文件序列化成二进制传输 3.接收端把收到的二进制文档重新“弄”成列表中对应的文档(找不到合适的动词。。) ps. 这如果用的是原生的socket 应该会好做点,winsock貌似只支持string的传输,类型转换比较浪费性能
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯