WSAAsyncSelect 模型 本节内容 视频提供:昆山爱达人信息技术有限公司 视频录制:yang 官网地址:www.bcdaren.com 联系QQ:1250121864 QQ交流群 :49759272 联系电话:0512-57882866
可以使用window应用程序能够接收网络事件消息. Int WSAAsyncSelect( 昆山爱达人信息技术有限公司 www.bcdaren.com QQ:1250121864 可以使用window应用程序能够接收网络事件消息. Int WSAAsyncSelect( SOCKET s, //事件通知需要的Socket HWND hWnd, //网络事件发生时用于接收消息的窗口句柄 u_int wMsg, //网络事件发生时接收到的消息 long lEvent //感兴趣的网络事件比如FD_CLOSE FD_READ ); 返回值 :1.如果成功,则返回0 如果出现错误,则返回Socket_ERROR
2.使用WSAAsyncSelect时,系统会通过FD_CLOSE来告诉我们对方关闭了连接. 昆山爱达人信息技术有限公司 www.bcdaren.com QQ:1250121864 使用要点: 1.调用WSAAsyncSelect会自动把套接字设为非阻塞模式.所以在使用send和recv时还应该检查WSAEWOULDBLOCK的错误. 2.使用WSAAsyncSelect时,系统会通过FD_CLOSE来告诉我们对方关闭了连接. 3.FD_WRITE消息的发送比较特殊.虽然FD_WRITE意味着send可以成功.但是并不是只要有可用空间系统就会发送一个FD_WRITE消息.实际上是,当一个连接刚建立后,系统会发送第一个FD_WRITE消息,程序在接收到第一个FD_WIRTE消息后,就可以一直调用Send来发送数据.而无须在一次send后等待另一个FD_WRITE消息.也就是说在收到第一个FD_WRITE消息后,程序就可以不断地调用send直到返回WSAEWULDBLOCK为止.
<基础二(WIN32、MFC、网络编程、数据库)线上班>学员可见 昆山爱达人信息技术有限公司 www.bcdaren.com QQ:1250121864 课后练习:(无) <基础二(WIN32、MFC、网络编程、数据库)线上班>学员可见