各种网络模型背后的设计思路
问题 本篇将梳理前面讲过的所有网络模型,并在此基础上探究这些模型所涉及的设计思路。相当于前面只讲了What和How部分,这里专门来补充Why部分。因为若是一开始就从原理讲起难免枯燥乏味且晦涩难通,而有… Continue Reading 各种网络模型背后的设计思路
Dive deep into the C++ core, and discover more!
问题 本篇将梳理前面讲过的所有网络模型,并在此基础上探究这些模型所涉及的设计思路。相当于前面只讲了What和How部分,这里专门来补充Why部分。因为若是一开始就从原理讲起难免枯燥乏味且晦涩难通,而有… Continue Reading 各种网络模型背后的设计思路
前言 这是IOCP的末篇了,本次的实例使用IOCP配合扩展函数来实现服务器,并对之前的版本做一些优化,比如这里使用了内存池,日志记录,所以这也是效率最好的一个版本,作为一个例子来说已经很完整了。 因为… Continue Reading 网络模型之IOCP服务器实例二(四)
上篇用IOCP实现了一个简单的服务器,在处理消息方面性能已经不错了,但是接爱请求函数却依旧使用的是 accept 函数,所以这部分性能并不够,而Windows在扩展函数中为我们提供了一些选择,本篇就来… Continue Reading 网络模型之IOCP与扩展函数(三)
上篇简单地介绍了IOCP模型所需的基础内容,并给出了服务器版本一的声明,更多的内容会在本篇的实现中来展开说明,学完这篇就基本会明白怎样用IOCP来实现一个还不错的上万级别的服务器了。 开始之前得对上篇… Continue Reading 网络模型之IOCP实现版本一(二)
前言 前面介绍了重叠IO模型,该模型的缺点是发出IO请求的线程必须同时对完成通知进行处理,若一个线程发出多个请求,那么即使其它线程完全处于空闲状态,该线程也必须对每个请求的完成通知做出响应,从而影响了… Continue Reading 网络模型之IOCP基础(一)
在上篇介绍了重叠 IO 的基本知识并使用事件的方式实现了第一个版本,但大家知道使用事件的缺点,因为 WaitForSingleObject 函数最多只能等待 64 个事件,所以要想处理更多的客户端得通… Continue Reading 网络模型之重叠IO(二)
前面已经说过 select 和 Event selct 模型,这两个还是比较小型的,今天来说重叠 IO,这个可以支持上千个用户,当然理解起来也越来越难了点。 重叠 IO 模型是典型的非阻塞模型,接收数… Continue Reading 网络模型之重叠IO(一)
开始之前,再来看看流程图。 程序阻塞的主要有两部分,一个是等待数据到来,一个是将数据从内核复制到程序缓冲区。 事件选择模型,其实是在 select 模型的基础上更进一步地做了优化,这次优化把等待数据到… Continue Reading 网络模型之Event select
之前我们写了一些简单的网络程序,使用的都是基本的socket,这些程序有一个特点就是都是阻塞执行的。何谓阻塞呢?就是函数不会立即返回,直到等到结果才返回,像 accept,recv 就属于阻塞函数。 … Continue Reading 网络模型之select
花开花落,倏忽一载便逝矣,新的一年,祝大家天天开心 HTTP即超文本传输协议(Hypertext Transfer Protocol),是Web通信所使用的协议。它是基于TCP/IP实现的协议,所以本… Continue Reading HTTP协议之编写简单的Web服务器