摘要:
TCP协议是一个复杂的、可靠的字节流协议.不通用UDP协议。 TCP提供客户与服务器之间的连接。TCP客户先与给定的服务器建立一个连接,再跨该连接与服务器交换数据,最后终止这个连接。 TCP提供了可靠性。 TCP动态估算客户与服务器之间的往返时间(RTT)。 TCP通过对序列号对发送的数据进行排序。 阅读全文
摘要:
1 套接字地址结构 大多数套接字函数都需要一个指向套接字地址结构的指针作为参数。每个协议族都定义了自己的套接字结构。这些套接字的结构以sockaddr_开头,以每个协议族唯一的后缀名结尾。 1.1 IPV4套接字地址结构 IPV4套接字结构通常被称为网际套接字结构,以sockaddr_in命名,定义 阅读全文
摘要:
1 内存分配方式 内存分配方式有如下三种: 一般的原则是:如果使用堆栈和静态存储就能够满足应用需求,就不要使用动态存储。因为,在堆上动态分配内存需要很多额外开销。 2 常见的内存错误及其对策 使用free()或者delete释放了内存之后,没有把指针设置为NULL,产生“野指针”。 函数return 阅读全文
摘要:
1 管道 管道一般是一种半双工的进程间通信方式,只能够在具有公共祖先的进程之间使用,比如一个管道由一个进程创建,然后该进程调用fork,之后父、子进程就可以使用该管道。 管道是调用pipe函数创建的。 调用fork之后做什么取决于想要数据流的方向。对于从父进程到子进程的管道,父进程关闭fd[0],子 阅读全文
摘要:
整理了一下Hash表相关内容,如下:Hash 表是使用 O(1) 时间进行数据的插入删除和查找的表,但是 hash 表不保证表中数据的有序性,这样在 hash 表中查找最大数据或者最小数据的时间是 O(N) 。 1 寻址和 hash 函数 理想状态下 hash 足够大,每一数据保存在一个 hash 阅读全文
摘要:
1 概念 线程是程序执行流的最小单元。线程是进程中的一个实体,是被系统独立调度和分派的基本单位,线程自己不拥有系统资源,只拥有一点在运行中必不可少的资源,但它可与同属一个进程的其它线程共享进程所拥有的全部资源。一个线程可以创建和撤消另一个线程,同一进程中的多个线程之间可以并发执行。由于线程之间的相互 阅读全文
摘要:
1 对象的概念 面向对象(Object Oriented Analysis Design,OOAD)的思想把整个世界看成是由具有某种特征行为功能的基本单元——对象构成的。OOAD把一个对象的特征称为属性,把其行为称为一种方法。一个对象,可以接受外部信息,也可以向外部提供某种服务,我们可以将参数传递给 阅读全文
摘要:
多态(polymorphism)在C++中可以简单地概括为“通用一个接口,实现多种方法”,它是面向对象编程领域的核心概念,只有程序在运行时才决定调用对应的函数。 C++多态性是通过虚函数来实现的,虚函数允许子类重新定义成员函数,而子类重新定义父类的做法称为覆盖(override),或者称为重写。重写 阅读全文
摘要:
1 信号传递过程 当引发信号的事件发生时(如软硬件异常、软件定时、终端产生信号或调用kill函数等等),会产生信号,内核会发送给目标进程。 在信号产生到信号传递给目标进程之间的时间间隔内,称该信号为未决的(pending)。 进程可以对信号进行阻塞操作。若进程选择了对一个信号进行阻塞,并且对该信号的 阅读全文
摘要:
vim中设置自动在=+-之类的运算符号左右两边加上空格。原版的vim不带这个功能,写出的代码例如z=x+y,不美观,很多编译器(如VS)能够自动在符号两边加上空格,如z = x + y,看起来比较美观。 只要在.vimrc里面加入如下代码: 就可以了。另外还可以加入如下代码,增加vim的便利性: 阅读全文