IOCP中用WSARecv接收不了客户端发来的数据
我在服务端用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 )
求大神帮忙 谢谢了 IOCP SOCKET WSARecv 网络编程
[解决办法]
WSARecv返回值是多少啊 有没有错误码啊 WSAGetLastError看看啊
[解决办法]
GetEmptyMyOverlapped里面有对wsabuff.buf申请内存么?
[解决办法]
当了还是什么出错了 当了是当在什么地方啊 出错那还是那句老话lasterror