我在一个线程里接受连接,然后投递到工作线程,根据操作标志在工作线程里用
WSARecv接受数据,iRet = WSARecv(pNewOverlapPlus->sConnectSocket,
&pNewOverlapPlus->wsaBuf,1,
&pNewOverlapPlus>dwRecvBytes,
&ulFlags,
&pNewOverlapPlus->overlapped,
NULL);
ulFlags 为MSG_PARTIAL 调用返回值表示正在接受,当发生接受完成通知时
返回值iRet变为997,在msdn里表示Overlapped I/O operation is in progress. ERROR_IO_PENDING ,pNewOverlapPlus是_OVERLAPPEDPLUS 的结构体指针。之前我清空了overlapped域,我在发生完成通知时没有收到传过来的数据 接受字节数为0 这是怎么回事
typedef struct _OVERLAPPEDPLUS {
OVERLAPPED overlapped;
//连接句柄
SOCKET sConnectSocket;
//操作代码
int OpCode;
WSABUF wsaBuf;
//发送接受缓存区
char szBuff[DATA_BUFSIZE];
//发送长度
DWORD dwSendBytes;
//接受长度
DWORD dwRecvBytes;
}TOVERLAPPEDPLUS,*TPOVERLAPPEDPLUS;
前段时间我调试多正常,这几天忙昨天再调试时出问题的,先谢了。
WSARecv接受数据,iRet = WSARecv(pNewOverlapPlus->sConnectSocket,
&pNewOverlapPlus->wsaBuf,1,
&pNewOverlapPlus>dwRecvBytes,
&ulFlags,
&pNewOverlapPlus->overlapped,
NULL);
ulFlags 为MSG_PARTIAL 调用返回值表示正在接受,当发生接受完成通知时
返回值iRet变为997,在msdn里表示Overlapped I/O operation is in progress. ERROR_IO_PENDING ,pNewOverlapPlus是_OVERLAPPEDPLUS 的结构体指针。之前我清空了overlapped域,我在发生完成通知时没有收到传过来的数据 接受字节数为0 这是怎么回事
typedef struct _OVERLAPPEDPLUS {
OVERLAPPED overlapped;
//连接句柄
SOCKET sConnectSocket;
//操作代码
int OpCode;
WSABUF wsaBuf;
//发送接受缓存区
char szBuff[DATA_BUFSIZE];
//发送长度
DWORD dwSendBytes;
//接受长度
DWORD dwRecvBytes;
}TOVERLAPPEDPLUS,*TPOVERLAPPEDPLUS;
前段时间我调试多正常,这几天忙昨天再调试时出问题的,先谢了。
解决方案 »
- VC调用VB的ACTIVE DLL的问题:
- 谁愿意做个工具条啊,猪八戒交易
- LPBITMAPINFOHEADER这是什么?有什么作用吗?
- 急,用CreateProcess打开一个指定的网页,同时指定IE窗口的大小
- VC调用VB编的DLL时如何传递参数
- 哪位网友知道在石家庄什么地方能买到《WINDOWS程序设计》第5版 北京大学出版社 我急切的需要这本书 谢谢!
- 请教ip数据包头的解析!
- 有关属性页的问题?
- 一个关于在C++ Builder 6中将流写入SQL Server 2000的Image类型字段的问题
- 限制鼠标范围
- 有什么办法能解决使用ADO访问ORACLE数据库的CLOB字段的有内存泄漏问题?
- 如何将一个已有的位图资源直接作为工具栏.....
你显示出来的东东自然是没有问题的。 但问题是存在的,所以一定有存在问题的code.*_*