18,356
社区成员
发帖
与我相关
我的任务
分享
//创建套接字
m_sktSer = WSASocket(AF_INET, SOCK_DGRAM, IPPROTO_UDP, NULL, 0, WSA_FLAG_OVERLAPPED);
//绑定
sockaddr_in LocalAddr;
LocalAddr.sin_family = AF_INET;
LocalAddr.sin_addr.s_addr = INADDR_ANY;
LocalAddr.sin_port = htons(SERVER_PORT);
int iRet = bind(m_sktSer,(LPSOCKADDR)&LocalAddr,sizeof(LocalAddr));
if (SOCKET_ERROR == iRet)
{
closesocket(m_sktSer);
WSACleanup();
return FALSE;
}
//于是,就在以个线程里接收数据
ZeroMemory(buffer, iBufferLen);
int iRet = WSARecvFrom(pThis->m_sktSer,
&wsabuf,
0,
&dwRecv,
&dwFlag,
(sockaddr*)&senderAddr,
&SenderAddrSize,
&(pThis->m_overlapped),
NULL);
if(SOCKET_ERROR == iRet)
{
if (WSA_IO_PENDING == WSAGetLastError())
continue;
else
{
iRet = WSAGetLastError(); //问题就在这,客户端向它发送数据时,iRet就返回10055 就是错误WSAENOBUFS;
return 0;
}
}