用WinSock API接收UDP消息时,可不可以设置接收Buffer?如何设置?

VAFLS_Scott 2003-10-24 11:04:13
因为我的系统可能会有突发性的大数据量消息,所以有时候会发生消息丢失的情况,专门开一个线程负责接收都来不及,我想设置UDP的接收buffer,当数据量大到来不及接收的时候系统会自动保存在buffer中,而不会丢失。(听一个朋友说在他用的操作系统中可以这样做,系统默认的buffer才几百k,他把buffer设置到10m后性能大幅度提高,不知windows下可不可以这么做?)
望高手指教!谢谢!
...全文
64 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
VAFLS_Scott 2003-10-24
  • 打赏
  • 举报
回复
hoffen(有空交流(QQ:64519161)) 写的,不太明白,呵呵
上面 bb123456789(bbb), xiaohyy(醉大饿极) 和 tomfool(笨笨) 说的做法可用,谢谢
hoffen 2003-10-24
  • 打赏
  • 举报
回复
用WSAANSYCSELECT()选择FD_READ事件,其中有个参数是HWnd,设置它,并不窗口中用自定义的MESSAGE来进行数据处理,这就好了。
Flysnow 2003-10-24
  • 打赏
  • 举报
回复
农民,没窗有门~
VAFLS_Scott 2003-10-24
  • 打赏
  • 举报
回复
还有一个问题,如果setsockopt函数失败的话,会不会导致原来已经bind的sock不可用?我只是设置接收buff,如果失败,我希望原来已经bind的sock还是可以用来收发消息。
VAFLS_Scott 2003-10-24
  • 打赏
  • 举报
回复
谢谢各位大侠!我这么做了,但不知道性能会有多少改善。:)
顺便问一下,tcp中的滑动窗口是什么意思啊?能解释一下吗?
tomfool 2003-10-24
  • 打赏
  • 举报
回复
//设置revc buffer
DWORD optval = 32768 ; //32 kb
if(setsockopt(MySock.sock,SOL_SOCKET,SO_RCVBUF,(char *) &optval,sizeof(optval))==SOCKET_ERROR)
{
MessageBox(NULL,"Revc buffer set fail!","error",MB_OK);
return 0;
}
xiaohyy 2003-10-24
  • 打赏
  • 举报
回复
>>ft,开玩笑吧,修改窗口大小不就是拿鼠标来拉一拉?哈哈

他说的窗口是tcp中的滑动窗口,不过这个概念在tcp中才有。

bb123456789(bbb)的做法是正确的 。
VAFLS_Scott 2003-10-24
  • 打赏
  • 举报
回复
ft,开玩笑吧,修改窗口大小不就是拿鼠标来拉一拉?哈哈
我说的是修改Buffer大小啊
bb123456789 2003-10-24
  • 打赏
  • 举报
回复
你看看setsockopt()这个函数!SO_RCVBUF
microyzy 2003-10-24
  • 打赏
  • 举报
回复
修改窗口大小?记不清了,呵呵
内存泄漏 2003-10-24
  • 打赏
  • 举报
回复
If the setsockopt function is called before the bind function, TCP/IP options will not be checked with TCP/IP until the bind occurs. In this case, the setsockopt function call will always succeed, but the bind function call may fail because of an early setsockopt failing
xiaohyy 2003-10-24
  • 打赏
  • 举报
回复
setsockopt之所以返回失败,是因为一些参数不正确,或网络状况不对,对以前的socket没影响的。
VAFLS_Scott 2003-10-24
  • 打赏
  • 举报
回复
还有一个问题,如果setsockopt函数失败的话,会不会导致原来已经bind的sock不可用?我只是设置接收buff,如果失败,我希望原来已经bind的sock还是可以用来收发消息。
没人回答吗?:(

18,356

社区成员

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

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