首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

怎么清空Socket缓冲区

2012-09-27 
如何清空Socket缓冲区有什么办法能一次性吧缓冲区的内容全部Recv下来呢?用While循环会有这样的问题比如whi

如何清空Socket缓冲区
有什么办法能一次性吧缓冲区的内容全部Recv下来呢?
用While循环会有这样的问题
比如
while(true)
{
int ret = recv(socket, buf, 500,0);
if(ret != 500)
{
break;
}
}
那么当我缓冲区内的消息正好是500的倍数的时候,第一次ret=500 不退出循环 下一次recv因为缓冲区内没有消息,就会堵塞!

有什么好办法能不阻塞 把缓冲区的消息都接下来么?

[解决办法]

探讨
踢掉客户端是一个办法
但是感觉不太好
我还是希望能清空缓冲区
牺牲掉下一个报文 保证后续的报文不会出错 程序也不会当掉
能实现么

热点排行