套接字I/O模式和I/O模型

来源:互联网 发布:天翼linux 编辑:程序博客网 时间:2024/06/09 13:49

对于套接字,以前没有真正理解,只知道有同步套接字、异步套接字等等说法,而且他们分别由不同的API函数负责创建,不清楚它们之间到底是什么样的关系。最近系统的学习了一下套接字编程,才真正搞明白到底是怎么回事。

套接字包括两种I/O模式,分别是阻塞模式和非阻塞模式(也称为异步模式)。

阻塞模式很好理解,也很容易实现,可以通过多线程的技术实现真正的套接字编程。

但是对于非阻塞模式就比较复杂。为了很好的实现套接字的非阻塞模式,又提出了五种套接字的I/O模型,分别是:1、选择模型,主要是利用Select函数实现对I/O的管理;2、异步选择模型,应用程序在套接字上接收以Windows消息为基础的网络事件通知;3、事件选择模型,这个模型允许应用程序接收以事件为基础的网络事件通知;4、重叠I/O模型,可以使用事件通知或者完成例程两种方式分别实现重叠I/O模型;5、完成端口模型,这种模型是目前为止,最为复杂的一种I/O模型。对于这些的I/O模型的介绍网上有很多资料进行介绍,这里就不多说了。

我理解的也不是很深刻,希望能和感兴趣的朋友一起探讨,更期待高手的指点。