套接字I/O模式和I/O模型
2009-06-04 17:38
176 查看
对于套接字,以前没有真正理解,只知道有同步套接字、异步套接字等等说法,而且他们分别由不同的API函数负责创建,不清楚它们之间到底是什么样的关系。最近系统的学习了一下套接字编程,才真正搞明白到底是怎么回事。
套接字包括两种I/O模式,分别是阻塞模式和非阻塞模式(也称为异步模式)。
阻塞模式很好理解,也很容易实现,可以通过多线程的技术实现真正的套接字编程。
但是对于非阻塞模式就比较复杂。为了很好的实现套接字的非阻塞模式,又提出了五种套接字的I/O模型,分别是:1、选择模型,主要是利用Select函数实现对I/O的管理;2、异步选择模型,应用程序在套接字上接收以Windows消息为基础的网络事件通知;3、事件选择模型,这个模型允许应用程序接收以事件为基础的网络事件通知;4、重叠I/O模型,可以使用事件通知或者完成例程两种方式分别实现重叠I/O模型;5、完成端口模型,这种模型是目前为止,最为复杂的一种I/O模型。对于这些的I/O模型的介绍网上有很多资料进行介绍,这里就不多说了。
我理解的也不是很深刻,希望能和感兴趣的朋友一起探讨,更期待高手的指点。
套接字包括两种I/O模式,分别是阻塞模式和非阻塞模式(也称为异步模式)。
阻塞模式很好理解,也很容易实现,可以通过多线程的技术实现真正的套接字编程。
但是对于非阻塞模式就比较复杂。为了很好的实现套接字的非阻塞模式,又提出了五种套接字的I/O模型,分别是:1、选择模型,主要是利用Select函数实现对I/O的管理;2、异步选择模型,应用程序在套接字上接收以Windows消息为基础的网络事件通知;3、事件选择模型,这个模型允许应用程序接收以事件为基础的网络事件通知;4、重叠I/O模型,可以使用事件通知或者完成例程两种方式分别实现重叠I/O模型;5、完成端口模型,这种模型是目前为止,最为复杂的一种I/O模型。对于这些的I/O模型的介绍网上有很多资料进行介绍,这里就不多说了。
我理解的也不是很深刻,希望能和感兴趣的朋友一起探讨,更期待高手的指点。
相关文章推荐
- 4 套接字模式、选择模型
- Windows套接字I/O模型之套接字模式
- Windows套接字I/O模型(1) 套接字模式
- .NET应用架构设计—适当使用活动记录模式代替领域模型模式
- 【网络编程】服务端的I/O模型,事件处理模式,并发模式
- 适当使用活动记录模式代替领域模型模式
- js设计模式-原型模型
- 设计模式学习(四) 原型模型
- 套接字I/O模型之WSAEventSelect
- java设计模式之行为模型模式
- CSS盒模型全面讲解,怪异模式盒模型,CSS3 box-sizing属性
- 设计模式:单例模式-懒汉模型和饿汉模型
- 设计模型之创建型模式之单例模式(Singleton)
- 并发模型(二)——Master-Worker模式
- java设计模式--原始模型模式
- Java进阶(五)Java I/O模型从BIO到NIO和Reactor模式
- socket模式和模型概念
- Windows 套接字I/O 模型
- 套接字I/O模型
- 设计C++回调模型(一):设计模式