WinSocket网络模型模型原理

 WinSocket模型 :Select(选择);WSAAsyncSelect异步选择);WSAEventSelect(事件选择);OverlappedI/O(重叠式I/O)以及Completionport(完成端口) 




上面这些模型区别主要是一下几个方面
  如何监控socket的变化
  如何通知socket的变化
 
1.select  : 
     应用场合:主要面向的是某些使用U n i x操作系统的计算机,它们采用的是B e r k e l e y套接字方案。s e l e c t模型已集成到Winsock 1.1中,它使那些想避免在套接字调用过程中被无辜“锁定”的应用程序,采取一种有序的方式,同时进行对多个套接字的管理.
     原理: 利用select函数,我们判断套接字上是否存在数据,或者能否向一个套接字写入数据.


2.WSAAsyncSelect :
     应用场合:用于帮助应用程序开发者面向一些早期的16位Windows平台(如WindowsforWorkgroups),适应其“落后”的多任务消息环境。应用程序仍可从这种模型中得到好处,特别是它们用一个标准的Windows例程(常称为“winproc”),对窗口消息进行管理的时候。该模型亦得到了MicrosoftFoundationClass微软基本类,MFC)对象CSocket的采纳, 

     原理:利用WSAAsyncSelect来处理FD_READ、FD_WRITE、FD_ACCEPT、FD_CONNECT、FD_CLOSE消息
3 WSAEventSelect:
      应用场合: 各种异步Socket 程序. WSAWaitForMultipleEvents 限制最多只能等待64个Event . 
      原理: 将socket的各种变化通过Event来通知区别WSAAsyncSelect 窗口消息来通知

4.OverlappedI/O:
       应用场合: 与WSAEventSelect模式类似
       原理: 将socket的各种变化通过Event来通知  并多了一个绑定的event处理过程.

5.Completionport:
       应用场合: 完成端口”模型是迄今为止最为复杂的一种I / O模型。然而,假若一个应用程序同时需要管理为数众多的套接字,那么采用这种模型,往往可以达到最佳的系统性能!但不幸的是,该模型只适用于Windows NT和Windows 2000操作系统。因其设计的复杂性,只有在你的应用程序需要同时管理数百乃至上千个套接字的时候,而且希望随着系统内安装的C P U数量的增多,应用程序的性能也可以线性提升,才应考虑采用“完成端口”模型
       原理: 完成端口模型要求我们创建一个Wi n 3 2完成端口对象,通过指定数量的线程,对重叠I / O请求进行管理,以便为已经完成的重叠I / O请求提供服务

 
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值