Socket 传文件问题(tcp)?

来源:百度知道 编辑:UC知道 时间:2024/06/05 08:26:58
我用了两个线程 一个是不断的读文件然后用send发出去 直到问题结束 然后用在另一台电脑启动一个接收问件的线程用while(1)一直接收(recv)直到收到一个结束标志就退出 但问什么有时候能接收成功 有时候不能呢 好像传小文件的成功率比较大 问什么呢 有什么解决办法吗 谢谢
如果给自己发文件的话,好像每次都有能成功啊,不明白啊

发送的速度不要太快~! 必须有一个缓冲~! 我一般使用 Sleep
函数在读取文件发送的循环过程中停留 大约100毫秒左右Sleep(100)~!
不然两个连续的数据包很有可能会被并为一个数据包~! 你的文件结束标志
会根最后一个文件数据包并为一个数据包从而影响判断~!
发送文件我一般 先发送文件大小 然后接着发送文件
接收端收到与文件大小相同数量的字节后判断文件接收完毕~!