请教文件传输数据丢失的问题(自己弄了2天拉)
请问为什么用TCP进行文件传输的时候(局域网),会出现数据丢失的情况啊?不是说TCP是可靠的吗?难道我自己需要进行send()返回值的判断吗?请教啊,第一次提问。
我测试的时候有这么些情况:传比较小的文件不会有丢失(比如1M内),但是传大的文件的时候就会有丢失,越大好像丢失的越多。而且并不是每次都丢失,比如10次里面有3,4次可能能够很完整的接收到。丢失的时候传700M的文件,会有5M左右的丢失,也有时候只出现6000多字节的丢失(传700M的文件没有成功接收过)。
我用的是API的SOCKET,发送文件采用的是线程,接收文件采用的是在FD_READ里面响应。两边send和recv的接收缓冲设置的长度是一样的,文件结束的判断也没有问题(我觉得)。
请问这是什么原因啊?(真是没办法啊,请各位帮帮忙,在线等啊。。。不然睡不好啊)