回复 9楼 hellovfp
send() 这个函数 我对他产生了迷惑。
MSDN 这样说的
If no error occurs, send returns the total number of bytes sent, which can be less than the number indicated by len for nonblocking sockets.
他说非阻塞的可能传送的数据要比实际少。
网上的解析到:send() 实际不是来发送数据而是copy 要发送数据到socket 对应数据结构的缓冲去。
但我看好多书上都没有这样说。
很多文件传送例子都没有检测send()实际发送(姑且这么说吧)的数据是多少,要是数据比实际要少呢,这样不是出现数据丢失了吗。。
我现在还没有具体测试,貌似send()发送时候很少出现传的比实际少。。。
我自己也觉得应该send() 只是copy 数据到socket 的缓冲去 。
然后依靠协议来传送数据。。。TCP 这里样自己保证数据可靠性。。
上面就是我的迷惑了,还有TCP 数据可靠性 具体指什么呢,上面发送的比实际要少 这不矛盾吗? 除非是上面的copy 的解释 就符合,
那么这样的话确实没有必要检测发送的实际多少了(这里貌似有一个传送最大单位8000多字节吧 )
。。。。。。。。。
没有看深一点网络编程的书籍 。只是看了一些例子的书籍。。。