IOCP中用WSARecv接收不了客户端发来的数据
砍柴君 2013-03-25 06:29:46 我在服务端用WSARecv函数接受客户端发来的数据,当我在客户端中发数据后,在服务端中却看不到数据,这时的GetQueuedCompletionStatus函数中lpNumberOfBytes值为0;我的WSARecv函数是这样的
SOCKET socket=m_client[IDclient];
DWORD RecvBytes=0;
DWORD Flags=0;
MYOVERLAPPED *lpMyoverlapped=GetEmptyMyOverlapped(IDclient);
lpMyoverlapped->id=IDclient;
lpMyoverlapped->IoMode=recvMode;
WSARecv(socket,&lpMyoverlapped->wsaBuf,1,&RecvBytes,&Flags,lpMyoverlapped,NULL);
我的GetQueuedCompletionStatus函数代码为:
DWORD BytesTransferred=0;
MYOVERLAPPED *lpoverlapped=NULL;
SOCKET socket=NULL;
while (1)
{
if ( GetQueuedCompletionStatus(lpsocket->m_iocp, &BytesTransferred, (LPDWORD)&socket, (LPOVERLAPPED*)&lpoverlapped, INFINITE) == 0 )
求大神帮忙 谢谢了