为什么TCP socket实际使用时,对较大的数据
1个回答
2017-12-04
展开全部
这个跟MTU和MSS有关系,就像公路上并不是一下子所有汽车都能通行一个道理。
如果是阻塞send的话,就用不着while循环多次调send了,send会等待把所有的buf拷贝到内核发送缓冲区才返回。如果是非阻塞send的话,send调用会拷贝数据到内核发送缓冲区后就返回,如果发送的数据太大而发送缓冲区太小,你就需要while循环判断每次拷贝了多少到缓冲区还有多少没有拷贝,之后再次调send把剩下的数据拷贝到发送缓冲区。
如果是阻塞send的话,就用不着while循环多次调send了,send会等待把所有的buf拷贝到内核发送缓冲区才返回。如果是非阻塞send的话,send调用会拷贝数据到内核发送缓冲区后就返回,如果发送的数据太大而发送缓冲区太小,你就需要while循环判断每次拷贝了多少到缓冲区还有多少没有拷贝,之后再次调send把剩下的数据拷贝到发送缓冲区。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
Storm代理
2023-07-25 广告
2023-07-25 广告
StormProxies是一家国内优质海外HTTP代理商,拥有一个庞大的IP资源池,覆盖200多个地区,IP数量大且匿名度高。其优点还包括超高并发、稳定高效、技术服务等特点,同时提供HTTP、HTTPS以及SOCKS5协议支持。此外,Sto...
点击进入详情页
本回答由Storm代理提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询