能否修改电脑的接收网络信息的缓冲区大小?

jeffreyren 2001-06-14 07:29:00
用Win Socket编程, 有时候会因为发方发信息的速度过快,新的信息冲掉了来不及处理的旧信息。

Windows 的网络的缓冲是多大? 能修改吗? 有没有限制?
...全文
319 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
caiyi9000 2001-06-18
  • 打赏
  • 举报
回复
系统提供的socket缓冲区大小为8K,你可以将之设置为64K,尤其在传输实时视频时。

//设置发送和接收缓冲区
int rcvbuf;
int rcvbufsize=sizeof(int);

if(getsockopt(m_Socket,SOL_SOCKET,SO_RCVBUF,(char*)
&rcvbuf,&rcvbufsize)!=SOCKET_ERROR)
{
if(rcvbuf<65536)
rcvbuf=65536;
setsockopt(m_Socket,SOL_SOCKET,SO_RCVBUF,(char*)
&rcvbuf,rcvbufsize);
}

if(getsockopt(m_Socket,SOL_SOCKET,SO_SNDBUF,(char*)
&rcvbuf,&rcvbufsize)!=SOCKET_ERROR)
{
if(rcvbuf<65536)
rcvbuf=65536;
setsockopt(m_Socket,SOL_SOCKET,SO_SNDBUF,(char*)
&rcvbuf,rcvbufsize);
}
jeffreyren 2001-06-16
  • 打赏
  • 举报
回复
如何知道自己电脑的缓冲区大小?
huangbeyond 2001-06-16
  • 打赏
  • 举报
回复
买一块“缓冲区非常非常非常大”的网卡。 :)
jeffreyren 2001-06-16
  • 打赏
  • 举报
回复
please
maximin 2001-06-15
  • 打赏
  • 举报
回复
我也遇到过类似的问题,可不知道如何解决,每办法呀,只能用SLEEP多睡会儿等一下
jeffreyren 2001-06-15
  • 打赏
  • 举报
回复
to edyang:

不明白你的意思, 好象缓冲大小为1500,如果不停的发信息,超过了,那最旧的不久冲掉了?
Edward 2001-06-14
  • 打赏
  • 举报
回复
不会的。只要你不接收,信息不会“冲掉”的!
winmain 2001-06-14
  • 打赏
  • 举报
回复
有限制,可以修改 setsockopt(...)

18,356

社区成员

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

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