MFC中清除CAsyncSocket缓冲区
来源:互联网 发布:ios11蜂窝移动数据设置 编辑:程序博客网 时间:2024/05/29 23:24
问题描述:
MFC编程时,使用CAsyncSocket进行通信,当准备接收有用的数据时,发现有无关数据还在socket缓冲区。
解决办法:
1、使用循环调用Receive()直至返回SOCKET_ERROR(其值为-1),将socket缓冲区的无关数据读尽,然后调用自己function()去接受有用的数据,代码如下:
const int MAXRECEIVEBUF = 4096;
char szTemp[MAXRECEIVEBUF];
int bytes = 0;while((bytes=m_ClientSocket.Receive(szTemp,MAXRECEIVEBUF/2)) != SOCKET_ERROR){//接收数据之前,将socket的缓冲区数据清空,receive直到没数据时返回SOCKET_ERRORszTemp[bytes]=0;memset(szTemp,0,bytes);//}
void function();
注意:不要使用shutdown,因为一旦使用shutdown,这个socket也就废弃了。也不要直接去动socket缓冲区,那样做很危险。
0 0
- MFC中清除CAsyncSocket缓冲区
- MFC CAsyncSocket
- MFC CAsyncSocket
- 清除缓冲区
- 清除缓冲区
- 清除缓冲区
- 在C / C ++中清除输入缓冲区
- MFC中CAsyncSocket及其派生类对象跨线程使用方法
- MFC中CAsyncSocket实现TCP socket发送消息
- MFC中CAsyncSocket及其派生类对象跨线程使用方法
- MFC中CAsyncSocket及其派生类对象跨线程使用方法
- MFC之CAsyncSocket详解
- MFC之CAsyncSocket详解
- MFC之CAsyncSocket详解
- C++ socket编程MFC CAsyncSocket
- C++ socket编程MFC CAsyncSocket
- C++ socket编程MFC CAsyncSocket
- C++ socket编程MFC CAsyncSocket
- xstream处理null值属性转换
- shell script in work
- jQuery中的live绑定多个事件整理
- MYSQL入门学习之一:基本操作
- 通过struts.xml配置映射后的jsp引入外部css和js的路径问题及css中图片url路径问题
- MFC中清除CAsyncSocket缓冲区
- Container With Most Water
- MyEclipse注释模板及示范
- MYSQL入门学习之二:使用正则表达式搜索
- MyEclipse安装插件的三种方法
- 黑马程序员---Java多线程
- Plus One
- 【剑指offer】面试题8:旋转数组中的最小值
- uml建模工具