=新人请前辈们谈谈:TCP传送文件中,setsockopt设置的缓冲区大小与::Send函数发送的尺寸大小之间有什么关系或者限制吗?谢谢= 假设前者是SendBuf,后者是SendSize.SendBuf必须是比SendSize大吗?我学习的一些代码里,buf都是size的4倍.他们可以相等吗?buf可以比size小吗?如果这样,会有什么区别,会造成什么情况? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 在send()的时候,返回的是实际发送出去的字节(同步)或发送到socket缓冲区的字节(异步);系统默认的状态发送和接收一次为8688字节(约为8.5K);在实际的过程中发送数据和接收数据量比较大,可以设置socket缓冲区,而避免了send(),recv()不断的循环收发:// 接收缓冲区int nRecvBuf=32*1024;//设置为32Ksetsockopt(s,SOL_SOCKET,SO_RCVBUF,(const char*)&nRecvBuf,sizeof(int));//发送缓冲区int nSendBuf=32*1024;//设置为32Ksetsockopt(s,SOL_SOCKET,SO_SNDBUF,(const char*)&nSendBuf,sizeof(int)); SendSize是一次发送到对方的数据,仅此而已,貌似没太大联系吧.SendSize大于缓冲区,那多余的数据就丢失咯. 谢谢hairetz,想再问:在异步的情况下,怎么控制发送速度,由这两个函数中的哪个控制? 发送速度要看你的网络情况,当然2个都设置大点速度理论上会快些。 计算发送速度要看send的返回值 控制速度可以sleep,发送一点sleep一下 读文件的问题,如何每次读取指定长度,读过得不再读取! c++ socket 获取client地址的问题 请教大家,程序中的广告条(如网络蚂蚁中)是用什么方法实现的? 看COM的实列编程,请问各路高手看那本书呢? 请帮我看一下,下面的代码,说是连接出错!! 立即给分,简单问题! 请问哪里有InstallShield for Visual C++6.0下载??? 找出来隐藏类后,又出现问题了请高手们指点。 “传说”中的VC++和C++ Builer是否真的那样难学?请看------ 一个自动化的问题, 大虾拉小弟一把 获取时间然后写入文件的问题 C++如何获取pptx里的gif文件??
(异步);系统默认的状态发送和接收一次为8688字节(约为8.5K);在实际的过程中发送数据
和接收数据量比较大,可以设置socket缓冲区,而避免了send(),recv()不断的循环收发:
// 接收缓冲区
int nRecvBuf=32*1024;//设置为32K
setsockopt(s,SOL_SOCKET,SO_RCVBUF,(const char*)&nRecvBuf,sizeof(int));
//发送缓冲区
int nSendBuf=32*1024;//设置为32K
setsockopt(s,SOL_SOCKET,SO_SNDBUF,(const char*)&nSendBuf,sizeof(int));