CAsyncSocket类的异步机制

CAsyncSocket是一个异步非阻塞Socket封装类。CAsyncSocket::Create()有一个参数指明了要处理的Socket事件。用户关心的事件被指定后,这个Socket默认就被用作了异步方式。

CAsyncSocket将事件交给用户的过程:

CAsyncSocket的Create()函数执行后,除了Socket外还创建一个SocketWnd窗口对象外,并使用WSAAsyncSelect()将创建的Socket对象与该窗口关联,,以让该窗口来处理Socket事件(消息),CSocketWnd收到Socket事件之后只是简单的回调CAsyncSocket::Connect(),CAsyncSocket::OnAccept(),CAsyncSocket::OnSend()等虚函数,所以CAsyncSocket派生类只需要在这些虚函数里添加发送和接受代码。

除了在CreateSelect()在Create()函数中指定Socket要处理的事件外,用户还可以通过调用AsyncSelect()函数来指定。AsyncSelect()函数用组合标记定义了激发那些事件。AsyncSelect函数原型如下:
BOOL AsyncSelect(long IEvent=FD_READ}FD_WRITE|FD_OOB|FD_ACCEPT|FD_CONNECT|FD_CLOSE);

关闭所有激发的事件AsyncSelect(0);

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值