首先,纪念一下,如果不出意外的话(没过or狠心读个博),学生期间所有的考试应该就此结束了,以后就不会大冬天的早上7点起床去图书馆占座了,想想也是佩服自己啊,啧…
好了,言归正传,接着上篇,今天学习TCP协议中较难的重传、滑动窗口和拥塞控制。
TCP协议总结(一)
最近,在学习和科研中,越来越发现自己对于TCP协议的掌握不够,作为一个成天和网络打交道的人,TCP/IP简直是我们最核心的知识之一,所以,准备利用接下来准备考试的间隙时间,结合《TCP/IP详解 卷一:协议》再重新学习和巩固一下TCP。
C++构造函数一些常见问题分析
近期,在阅读陈皓老师博客的时候,看到几年前的一篇关于C++构造函数的FAQ,想来自己学习C++也有段时间了,就尝试着回答一下,并乘机总结一下C++构造函数的一些常见问题,记录于此。
借此机会逛了逛C++ FAQ,以前都不了解,以后得多去学习学习,检验下自己的C++基础知识扎不扎实。
常见并发网络服务程序设计方案
《Unix网络编程(第三版)》(以下简称[UNP])中第三十章”客户/服务器程序设计范式”总结了一些常见的并发网络服务程序设计方案,而随着互联网、大数据等浪潮的兴起,业界对服务器程序的高并发能力、稳定性等提出了更高的要求,客户/服务器程序设计范式也在随着时代的需求而不断改进和提升,下面就对常见的并发网络服务程序设计方案作简单总结。
浅谈C++值语义和对象语义
值语义和对象语义
值语义(value sematics)指的是对象的拷贝与原对象无关,拷贝之后就与原对象脱离关系。C++的内置类型都是值语义,如bool/int/double等,标准库里的pair<>,vector<>,map<>,string等类型也都是值语义。Java语言的primitive types(原生数据类型)也是值语义。
与值语义(object sematics)对应的是”对象语义”,或者也叫做”引用语义”。对象语义指的是面向对象意义下的对象,对象是禁止拷贝的或拷贝后与原来的对象存在关联。比如,拷贝一个Employee对象是没有意义的,一个雇员不会变成两个雇员。同样,muduo库中的TcpConnection,显然也是不可复制的,因为牵涉到系统的资源。Java里面的class对象都是对象语义/引用语义。
muduo源码阅读之Channel与Poller
如前所述,Reactor模式包括四个部分的组件:Handle, Synchronous Event Demultiplexer,Initiation Dispatcher和Event Handler。上一篇已经学习了muduo中的Initiation Dispatcher—EventLoop类,接下来分别讲述Handle—Channel类和Synchronous Event Demultiplexer—Poller类。
muduo源码阅读之EventLoop类
EventLoop类似于前面所述的Reactor模式中的Initiation Dispatcher,是用于驱动的主模块,完成与其他模块的调用和交互。EventLoop类提供的主要是一个框架,事件的分发由Demultiplexer提供,事件的处理由Event Handler提供,但事件的循环、怎样将事件的分发与调用结合起来则是由EventLoop类决定的。
muduo源码阅读之muduo的回调函数机制
回调是指将一段可执行的代码作为变量传给另外一部分代码,以供同步或异步调用。在Reactor模式中,在事件到来时调用相应的处理函数就是一种异步回调的过程。回调函数的实现可以由各种各样的方式。