WinSock---WSAAsyncSelect IO模式小结

38 篇文章 0 订阅
16 篇文章 0 订阅

在使用WSAAsyncSelect之前 一般要先自定义一个用户消息,然后在  WSAAsyncSelect 中设定 在socket发生某个事件时,发送指定消息给的某个窗口,然后在这个消息处理函数中处理事件信息,

关于事件处理函数中的参数信息(即消息 附带的参数)

可以看

如何判断通过WSAAsyncSelect 注册的事件中,发生的是那个

 

WSAAsyncSelect 函数用来请求Windows Sockets DLL为窗口句柄发一条消息-无论它何时检测到由lEvent参数指明的网络事件.要发送的消息由wMsg参数标明.被通知的套接口由s标识.

          本函数自动将套接口设置为非阻塞模式.

          lEvent参数由下表中列出的值组成.

          值 意义

          FD_READ 欲接收读准备好的通知.

          FD_WRITE 欲接收写准备好的通知.

          FD_OOB 欲接收带边数据到达的通知.

          FD_ACCEPT 欲接收将要连接的通知.

          FD_CONNECT 欲接收已连接好的通知.

          FD_CLOSE 欲接收套接口关闭的通知.

         

          启动一个WSAAsyncSelect()将使为同一个套接口启动的所有先前的WSAAsyncSelect()作废. 例如,要接收读写通知,应用程序必须同时用FD_READ和FD_WRITE调用WSAAsyncSelect(),如下:

          rc = WSAAsyncSelect(s, hWnd, wMsg, FD_READ|FD_WRITE);

          对不同的事件区分不同的消息是不可能的.下面的代码将不会工作;第二个调用将会使第一次调用的作用失效,只有FD_WRITE会通过wMsg2消息通知到.

                          rc = WSAAsyncSelect(s, hWnd, wMsg1, FD_READ);

                          rc = WSAAsyncSelect(s, hWnd, wMsg2, FD_WRITE);

          如果要取消所有的通知,也就是指出Windows Sockets的实现不再在套接口上发送任何和网络事件相关的消息,则lEvent应置为0.

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值