file://调用Winsock API函数,得到发生此事件的客户端套接字
SOCKET CurSock= (SOCKET)wParam;
switch(iEvent)
{
case FD_ACCEPT: file://客户端连接请求事件
OnAccept(CurSock);
break;
case FD_CLOSE: file://客户端断开事件:
OnClose(CurSock);
break;
case FD_READ: file://网络数据包到达事件
OnReceive(CurSock);
break;
case FD_WRITE: file://发送网络数据事件
OnSend(CurSock);
break;
default: break;
}
}
以下是发生在相应Socket上的各种网络异步事件的处理函数,其中OnAccept传进来的参数是服务器端创建的套接字,OnClose()、OnReceive()和OnSend()传进来的参数均是服务器端在接受客户端连接时新创建的用与此客户端通信的Socket。
void CSocketSeverDlg::OnAccept(SOCKET CurSock)
{
file://接受连接请求,并保存与发起连接请求的客户端进行通信Socket
file://为新的socket注册异步事件,注意没有Accept事件
}
void CSocketSeverDlg::OnClose(SOCET CurSock)
{
file://结束与相应的客户端的通信,释放相应资源
}
void CSocketSeverDlg::OnSend(SOCET CurSock)
{
file://在给客户端发数据时做相关预处理
}
void CSocketSeverDlg::OnReceive(SOCET CurSock)