惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

The GitHub Blog
The GitHub Blog
IT之家
IT之家
B
Blog RSS Feed
罗磊的独立博客
GbyAI
GbyAI
博客园 - Franky
Y
Y Combinator Blog
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
Google DeepMind News
Google DeepMind News
博客园 - 聂微东
N
Netflix TechBlog - Medium
博客园 - 三生石上(FineUI控件)
人人都是产品经理
人人都是产品经理
U
Unit 42
博客园 - 叶小钗
Jina AI
Jina AI
MyScale Blog
MyScale Blog
雷峰网
雷峰网
B
Blog
Hugging Face - Blog
Hugging Face - Blog
Blog — PlanetScale
Blog — PlanetScale
Recent Announcements
Recent Announcements
腾讯CDC
酷 壳 – CoolShell
酷 壳 – CoolShell

博客园 - 小峰

反思下 [.net] 将 datatable 存储到数据库 - 小峰 要上班了 表达式模版学习笔记 模版元编程学习笔记 模版默认参数小探 boost serialization 试用 精简版 rtti class 能不能这么写 boost/format试用 类成员变量私有化 设计模式小结 接口版本演化引发的思考二 c# 程序最小化到系统托盘 [xna]帧数 皆是#惹的祸 [xna]键盘 代码片段 单元测试
套接字 io 模型 小结
小峰 · 2006-12-29 · via 博客园 - 小峰

    最近复习了下socket 编程,特写于此帮助自己和大家记忆。

    套接字 io  模型能够完成对套接字上进行的通信进行管理。具体如下:

   1。select 模型:
      通过把套接字置入集合,通过 select 函数筛选,获取该套接字上发生的io活动。

   2。wsaasyncselect 模型:
      将感兴趣的io活动注册到对应的套接字,如果该活动发生就给指定窗体发送
      注册消息。

   3。wsaeventselect 模型:
      将感兴趣的套接字活动注册到对应的套接字,如果该活动发生就把指定的事件变为通知状态。等待该事件对象后查询该事件对应的套接字上发生的io活动。

   上述套接字的共同点:
      1。一个线程内能够完成对多个套接字的管理。
      2。套接字上发生io活动后必须同步进行读写操作(如果读取大量数据时间是个问题)。

   4。overlapped 模型:
      一样是通过事件通知机制获取套接字上发生的io活动。区别是操作系统帮助我们管理了套接字上进行的数据收发活动,直到该活动结束后才通过用户线程。

   5。completionport 模型:
      同 overlapped 模型,不同点是提供了类似线程池的机制,当投递的重叠 io 操作完成后,会调用等待该重叠io 操作完成的线程中的一个。该模型通过操作系统底层优化,提高了效率。同时没有事件内核对象的单线程等待64个socket 事件的限制。
是做网络游戏必选的套接字模型。