关闭
当前搜索:

高性能服务器编程——多进程编程

一、多进程编程 1、多进程处理 单机处理不能同时处理两个客户端,因为一旦一方执行起来,获取连接就会一直在while循环里面,而另一方获取不到连接,无法通讯,所以采用多进程处理。 思路:父进程只负责获取连接,然后fork出子进程去和客户端通讯。 注意:父子进程共享文件描述符,所以子进程在通讯时不必再创建文件描述符;    父进程创建出子进程后,关闭获取连接的文件描述符。 利用父子进程编程:...
阅读(25) 评论(0)

IP协议

一、微机原理 1、计算机组成:CPU、内存、I/O(输入输出设备) 2、总线: (1)数据总线:链接cpu、I/O、内存的线来传送数据 (2)地址总线:寻址  (3)控制总线:控制CPU、I/O、内存之间的方向 (I/O不可能到CPU)...
阅读(29) 评论(0)

网络编程(三) UDP报头及编程

一、UDP 1、UDP 报头 注意:          数据包长度包括首部在内的UDP报文长度。          校验值:头部和数据部分都校验。 2、TCP和UDP比较 (1)UDP控制信息很少,最多只有8个字节,而TCP最多有20个字节,所以UDP的传输速度较快。 (2)UDP是无连接的:它在发送数据前不需要建立连接,数据发送完也不用断开连接。 (3)UDP是不可靠...
阅读(39) 评论(0)

网络编程(二) TCP报头

一、TCP报头 1、TCP头部信息出现在每个TCP报文段中,用于指定通信的源端端口、目的端端口、管理TCP连接等。TCP头部结构包括固定头部结构和头部选项。 2、TCP固定头部结构如图所示: (1)16位源端口号/目的号:说明这个报文是来自哪里;要传给哪个上层协议。进行TCP通信时,客户端一般使用系统自动选择的临时端口号,服务器则会有指定的端口号。 (2)32位序号:序号:报头的编号;...
阅读(39) 评论(0)

网络编程(二)TCP面向连接服务 三次握手和四次挥手

一、TCP面向连接服务 1、三次握手创建连接 TCP连接建立过程:首先由客户端给服务器发送一个SYN连接请求;接着服务器会连同SYN这个请求和它的回馈标识ACK一起发送给客户端,SYN/ACK有两个意义:一是确认收到上一个报文、二是告诉客户端同意连接请求;然后客户端仔给服务器发送一个ACK回馈,表示它确认了服务器端同意的请求。 2、SYN:连接请求...
阅读(33) 评论(0)

网络编程基础(一)

一、网络数据传递流程 1、数据发送流程图 2、下层为是上层的服务是有限制的,如果上层想获取更多的服务只能通过自己去获取,上层服务没有权限要求下层服务提供更多的服务。 二、网络编程 1、在网络编程上有两个角色:服务器 、  客户端。 服务器:作为一个中间桥梁去完成两个客户端的通信。 客户端:作为普通用户使用的应用程序(QQ、游戏、浏览器...) 服务器也不绝对就只是服务器,比如QQ...
阅读(31) 评论(0)

网络基础

一、网络基础 1、网络就是将计算机主机连接起来,将网络连接起来就是互联网,inter网是最大的互联网; 2、网络设备有路由器和交换机; 路由器是osi协议模型网络层中的分组交换设备。它的基本功能就是通过登录、存储、转发等过程把数据传送到正确的网络;路由器比交换机多一个虚拟拨号功能,但是如果同时使用一个路由器网速之间会互相影响;路由器可以到网络层,能对IP报文进行分析,它有路由表去记录对应的I...
阅读(27) 评论(0)

线程控制(一)线程基础

一、线程管理 1、线程的概念:线程是进程内部的一条执行序列或者说是执行流(简单说就是执行路线)。因为每个进程都是独立的,所以每个进程至少有一个线程,就是main的执行体,叫做主线程。进程可以通过线程库创建n条线程,新创建的线程叫做函数线程,函数线程和主线程不一样。 2、所有的语言在main函数结束时程序退出,所以main函数从程序开始到结束是一条执行序列(执行流)。在main函数中可以调用库函...
阅读(35) 评论(0)

进程间通讯(四) 共享内存

一、共享内存 1、所谓共享内存就是在物理内存创建一块区域,让进程A、B同时共享这块区域,这个和管道很像,但区别是这块区域不是一块单独的区域,而是既可以把它看为进程A的一部分,又可以把它看为是进程B的一部分。如图所示: 2、共享内存也有内核对象来管理共享的内存区域。 3、特点:共享内存是最快的一种IPC机制,在各个进程都有指针直接指向开辟内存区域访问时当作本进程中的一个内存控制直接操作...
阅读(25) 评论(0)

进程间通讯(三)消息队列

一、消息队列 1、定义: 消息:是一种数据(不仅仅是数据消息,它包括数据和类型);队列:它的数据结构是“先进先出”。 消息队列:是一种临时存储消息的队列,完成进程之间的数据传递。它的特点是:不是完全的先进先出,相当于是有优先级的队列。 2、特点: 与管道相比:它也提供了一种在两个不相关的进程之间传递数据的方法,但消息队列的优点在于它独立于发送和进程而存在。不同的是管道发送的数据没有类型,...
阅读(48) 评论(0)

c++编译链接运行(一)

1、C和C++写代码必须通过编译、链接,才能得到可执行程序,可执行文件本身在磁盘存着,若要运行它,必须把它加载到内存。因为cpu从内存访问数据的效率远远大于从磁盘访问数据的效率。 2、那么要加载到内存,都要加载哪些东西呢?       无论那种语言写代码都只产生指令和数据。 3、把数据和指令加载到内存后如何区分二者呢?      一个计算机系统有CPU、内存、I/O,操作系统为了屏蔽底层硬...
阅读(41) 评论(0)

进程间通讯(二) 无名管道 & 信号量

一、无名管道 1、无名管道是由系统控制,相对于有名管道而言的。无名管道在使用时产生,不使用时释放,并不会在系统上留下任何痕迹,所以在释放之后你并不知道哪一块被用过。 2、使用限制:和有名管道相比,有名管道可以用于任意两个进程(包括父子进程),而无名管道因为使用前没有任何标识,所以只能用于父子进程之间,没有关系的两个进程不能打开无名管道。 父子进程之间的有关系是因为子进程会拷贝父进程的文件表数...
阅读(39) 评论(0)

进程间通讯(一) 有名管道

一、管道文件 1、A进程---->B进程   A进程的数据流通过通道向B进程 2、半双工通讯:数据流向单向传输 (同一时间)    全双工通讯:数据流向双向传输 (同一时间)...
阅读(32) 评论(0)

Strncmp函数

一、Strncmp函数1、参数:str1、str2为需要比较的两个字符串,n为要比较的字符的数目。字符串大小的比较是从ASCLL码表上的顺序来决定,此顺序为字符的值。                strncmp(  )首先将str1第一个字符值减去str2第一个字符值。若差值为0继续比较,直到字符结束标志'\0';若差值不为0,则将差值返回。                例如: Aa    b...
阅读(52) 评论(0)

Linux简答知识点

1、简述静态链接库与共享库的区别。        静态库:链接过程使用静态库,链接时将静态库中的内容合成到可执行文件,运行时不在依赖文件。             .a(linux)   .lib(windows)        动态库/共享库:运行时加载动态库,运行时可执行文件依赖于动态库。动态库必须和可执行文件都提供给用户。            .so (linux) .dll(wi...
阅读(21) 评论(0)
26条 共2页1 2 下一页 尾页
    个人资料
    • 访问:1001次
    • 积分:266
    • 等级:
    • 排名:千里之外
    • 原创:26篇
    • 转载:0篇
    • 译文:0篇
    • 评论:0条
    文章分类