自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(12)
  • 收藏
  • 关注

原创 I/O复用

I/O复用作用:将获取数据的操作延后到数据到达以后。数据到达以后,有数据的文件描述符会有一个就绪事件,服务器只需要处理就绪事件就可以。这样服务器单进程,单线程就可以同时监听多个文件描述符。select:select函数的作用:在一段时间内,监听用户感兴趣的文件描述符上的可读,可写,异常事件。函数原型:int select(int nfds, fd_set *read, fd_s

2017-11-26 12:07:00 363

原创 C++函数返回值

一、返回值类型如果返回值为类类型,不管多大字节,全部由临时量带回。其他类型:4字节  由寄存器带回8字节 也是由寄存器带回>8字节 开辟一个临时量(由调用方函数开辟)寄存器带出临时量的地址,然后循环拷贝到接收返回值的变量地址空间。若有以下代码:Test fun1(Test rhs){int value=rhs.value;Test tmp(value);

2017-11-22 16:36:00 836

原创 C++中对象的生存周期

在C中有变量的生存周期,那么在C++中就有对象的生存周期。(1)普通对象的生存周期若有一个CObject类,属性是姓名和年龄。CObject gobject1;int main(){CObject object1;CObject object2("宝宝",10);return 0;}CObject gobject2;函数调用的先后顺序是:构造函数:g

2017-11-22 15:51:01 881

原创 C++中类和对象以及成员函数

一个实体拥有自己的属性和行为,属性是私有的,行为是共有的,在C++中实体对应的就是对象,实体抽象数据类型就是类,属性是成员变量,行为是成员函数。面向对象思想的三大特征:封装、继承、多态(静多态,动多态)访问限定符:public:任意位置都可以访问。protected:(继承和派生)一子类可以访问父类的保护成员。private:只有在类中才能被访问。如果在class类中没

2017-11-17 16:57:23 3904

原创 线程池

今天我们来看一下线程池的概念。首先什么是池呢?作用是什么?池:初始时,申请比刚开始要使用的资源大的多的资源空间。接下来使用时,直接从池中获取资源。线程池:多线程存在如果客户端链接,创建一个新的线程,客户端关闭,释放线程。服务器更多时间消耗在创建线程、释放线程。对于业务逻辑的处理,就会较少。所以,我们可以用线程池来改善问题。总的来说线程池就是在服务器运行初始时,创建n 个线程,将这个n

2017-11-16 23:25:33 304

原创 高性能服务器编程--多进程和多线程

今天我们来看看高性能服务器编程--多进程和多线程。有的人就会想高性能服务器高性能在哪里了?在之前的TCP和UDP编程中,链接的客户端如果没有断开链接,服务器则不能在连接别的客户端,导致服务器同时只能处理一个客户端,这样就大大降低了服务器的效率,所以为了解决这个问题,就提出了高性能服务器编程。下面我们就来看看具体是怎么实现的。一、高性能服务器编程--多进程思路: 父进程只负责acce

2017-11-16 22:51:23 411

原创 HTTP协议以及HTTP编程

HTTP协议是用于从万维网服务器传输超文本到本地浏览器的传输协议。HTTP协议是基于TCP/IP通信协议来传递数据的,是一个属于应用层的面向对象的协议,由于其简捷、快速的方式,适用于分布式超媒体信息系统。HTTP的主要特点:1、简单快速:    客户向服务器请求服务时,只需要传送请求方法和路径。请求的方法常用的有GET、HEAD、POST。每种方法规定了客户与服务器联系的类

2017-11-13 22:08:29 663

原创 网络编程--UDP

网络编程传输层选择一个数据控制模式:TCP或者UDP,前面我们已经介绍了TCP编程,这篇我们简单的来看看UDP编程。UDP是无连接的不可靠的数据流服务。首先我们先简单的了解一下UDP报文。UDP报头:TCP是字节流服务,UDP是数据报服务。这两个有什么区别呢?UDP 的编程流程:服务器: socket   bind   recvfrom/sendto

2017-11-08 17:16:39 420

原创 C++中的const

一、const与一级引用①const int a = 10;int &b = a;②const int a = 10;int &b = a;//error因为可能通过b进而修改a的值,a被const修饰值不可改,所以编译器会报错。③const int a = 10;int const &b = a;//取地址不参与类型,b的类型是int,const修饰的是&

2017-11-08 15:18:14 328

原创 C和C++的区别

1、默认值2、内联函数①C++中的内联函数,在调用点把代码直接展开(编译阶段)。感觉和#define类似,那么这两个之间有什么区别呢?宏:在预编译阶段进行替换,没有进行类型检查,所以不安全内联函数:在编译阶段处理,进行类型检查,安全性好,所以又叫更安全的宏例:#define Max(a,b) a>b ? a:b..int a=MAx(10,20)+20;//a=10>2

2017-11-06 21:31:52 327

原创 网络基础以及基础编程-TCP

前面的博客关于Linux的都是操作系统方面以及系统编程,从这篇开始,我们开始介绍了解学习一下关于网络方面的基础知识以及网络编程。我们既然要开始网络编程,那么学习了解网络的基础知识是必须的。什么是网络?网络就是将主机连接起来就可称之为网络。这样主机与主机之间就可以进行通讯了,那么在网络通信过程中的主角是什么?实质是进程和进程之间的通信。要进行通信那么就要知道它的IP地址和端口号,我们平时说的网卡

2017-11-06 20:36:59 371

原创 线程同步问题

多进程之间访问临界资源需要进行同步控制,那么线程也是一样的,多线程访问临界资源时也同样需要进行同步控制。多进程或者多线程的执行并不完全是绝对的并行运行,有可能主线程需要等待函数线程的某些条件的发生。进程间的全局变量,栈区,堆区的数据都不共享,只有文件描述符是共享的,而线程之间的全局变量,堆区,文件描述符都是共享的。多线程之间同步控制方式:(1)信号量获取:        int

2017-11-01 16:10:41 268

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除