18,356
社区成员
发帖
与我相关
我的任务
分享
case WM_SOCKET:
if (WSAGETSELECTERROR(lParam))
{
// Display the error and close the socket
closesocket( (SOCKET) wParam);
break;
}
switch(WSAGETSELECTEVENT(lParam))
{
case FD_ACCEPT:
Accept = accept(wParam, NULL, NULL);
WSAAsyncSelect(Accept, hWnd, WM_SOCKET,FD_READ|FD_WRITE|FD_CLOSE);//为新的socket注册异步事
n++;
g_pMayiServer->AddSocket(Accept,n);
// CLSLOG2("有%d个客户连接\n",n);
break;
case FD_READ:
g_pMayiServer->recvMayi (wParam);
//CLSLOG2("FD_READ 次数 %d\n",rnum);
//rnum++;
break;
case FD_WRITE:
g_pMayiServer->SendToAll (wParam);
//CLSLOG2("FD_WRITE 次数 %d\n",wnum);
//wnum++;
break;
case FD_CLOSE:
MessageBox(NULL,"有客户断退出","服务端",NULL);
g_pMayiServer->EraseSocket(wParam);
closesocket( (SOCKET)wParam);
break;
}
break;
case FD_CONNECT :
WSAAsyncSelect(MayiClient,hWnd, WM_SOCKET, FD_CONNECT|FD_READ|FD_WRITE|FD_CLOSE);
break;
case FD_READ:
g_pMayiClient->recvMayi(wParam);//接收信息
CLSLOG2("FD_READ 次数 %d\n",rnum);
rnum++;
break;
case FD_WRITE:
g_pMayiClient->sendMayi(wParam,wStrName,wStrPass);//发送消息
CLSLOG2("FD_WRITE 次数 %d\n",wnum);
wnum++;
break;
case FD_CLOSE:
ret=closesocket( (SOCKET)wParam);
break;
}
break;