请教文件传输数据丢失的问题(自己弄了2天拉)

hzhmabiao1984 2006-04-21 06:40:49
请问为什么用TCP进行文件传输的时候(局域网),会出现数据丢失的情况啊?不是说TCP是可靠的吗?难道我自己需要进行send()返回值的判断吗?请教啊,第一次提问。
我测试的时候有这么些情况:传比较小的文件不会有丢失(比如1M内),但是传大的文件的时候就会有丢失,越大好像丢失的越多。而且并不是每次都丢失,比如10次里面有3,4次可能能够很完整的接收到。丢失的时候传700M的文件,会有5M左右的丢失,也有时候只出现6000多字节的丢失(传700M的文件没有成功接收过)。
我用的是API的SOCKET,发送文件采用的是线程,接收文件采用的是在FD_READ里面响应。两边send和recv的接收缓冲设置的长度是一样的,文件结束的判断也没有问题(我觉得)。
请问这是什么原因啊?(真是没办法啊,请各位帮帮忙,在线等啊。。。不然睡不好啊)
...全文
136 2 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
_____non______ 2006-04-21
  • 打赏
  • 举报
回复
不是丢包,是粘包~~~

自己找找相关文章
fengge8ylf 2006-04-21
  • 打赏
  • 举报
回复
send并不一定能一次把指定长度的数据发送出去 需要循环发送

18,363

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 网络编程
c++c语言开发语言 技术论坛(原bbs)
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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