一、异步选择模型有什么用
        异步选择模型可以说是对select的模型的优化,我们可以将事件投递给os用消息机制的形式来检测信号,对比select模型,在检测事件信号这方面是变成了异步,但是还是不能解决recv(send)函数执行时的阻塞
二、什么是消息机制
        在Windows发生的一切操作都会装一个队列中,再被Windows来处理这些操作
三、异步选择模型
        基本步骤(1).打开网络库(2).创建socket(3).bind绑定端口和地址(4).listen使套接字处于监听状态(5)WSAAsyncSelect事件投递(6)创建窗口(7)调用回调函数
        (5)WSAAsyncSelect
        WSAAsyncSelect(socketserver, hWnd, UM_ASYNCSELECTMSG, FD_ACCEPT)//int WSAAsyncSelect( _In_ SOCKET s, _In_ HWND hWnd, _In_ unsigned int wMsg, _In_ long lEvent);
        //参数1:服务端socket 参数2:窗口的句柄 参数3:投递的消息名称(可以这样宏定义WM_USER(系统已定义的宏)+1) 参数4:绑定的事件类型(同事件选择)
        //返回值可以用SOCKET_ERROR检测错误

(7)调用回调函数
        接下来就是窗口的回调函数了
        LRESULT CALLBACK WinBackProc(HWND hWnd, UINT msgid, WPARAM wparam, LPARAM lparam)
        {
             switch(msgid){
                  case WSAAsyncSelect投递的消息名称:
               
              }
        }

       SOCKET sock = (SOCKET)wparam;//wparam用于接收socket
      可以使用HIWORD(lparam)获取是否有错误,LOWORD(lparam)获取具体事件(可以用switch(LOWORD(lparam))来分类处理事件)
      自己写的服务端