自定义博客皮肤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)
  • 收藏
  • 关注

原创 设计模式——单例模式

单例模式指的是,无论怎么获取,永远只能得到该类类型的唯一一个实例对象那么设计一个单例就必须要满足下面三个条件: 构造函数私有化,这样用户就不能任意定义该类型的对象了; 定义该类型唯一的对象; 通过一个static静态成员方法返回唯一的对象实例; 常用场景:日志模块,数据库模块。饿汉式单例模式还没有获取实例对象,就已经产生了。饿汉式一定是线程安全的。因为单例对象定义成了一个static静态对象,对象会在main函数之前处理好,存在数据段。class Single

2022-04-29 19:31:51 769

原创 UDP网络编程

UDPUDP提供的是无连接,不可靠,数据报服务。“无连接”是指UDP不同于TCP协议,UDP不用建立连接。因此客户端每次发送数据都要明确指定接收端的地址;“不可靠”,意味着UDP协议无法保证数据从发送端正确地传送到目的端。如果数据在中途丢失,或者因为校验错误被丢弃,UDP只是简单的通知应用程序发送失败;基于数据报的服务,指每个UDP数据都要有一个长度,接收端读取时必须设置不小于该长度的单位并一次性读出,否则会导致数据缺失,在下一个数据报发来时,上一个数据就会被截断。关于TCP和UD.

2021-12-24 18:03:40 1524

原创 HTTP协议与Web服务器的C语言实现

http协议浏览器与web服务器在应用层 通信使用的是HTTP协议(超文本传输协议),而HTTP协议在传输层使用的是TCP协议。那么浏览器需要和 web 服务器三次握手建立连接后,才可以发送HTTP请求报文,服务器收到请求报文后,向浏览器回复应答报文。使用 HTTP 协议的程序一般默认使用 80 端口。Web服务器的实现连接建立过程短连接:close 一次性长连接:keep-alive 下一次请求时还可以继续使用。现在大部分web都使用长连接。http请求报...

2021-12-24 17:43:24 1446

原创 TCP网络编程——并发执行

目录用多线程处理用多进程处理对于之前博客中的代码。当一个客户端和服务器建立连接以后,服务端accept()返回,然后准备循环接收客户端发送的数据。如果客户端暂时没有发送数据,服务端绘制recv()处阻塞住。此时如果其他客户端向服务端发起连接,就无法进行accept()。也就是说,服务器无法同时处理多个客户端。为了解决这个问题,我们可以引入多线程和多进程。服务器接收一个客户端的连接后,创建一个线程或者进程,然后在新创建的线程或进程中循环处理数据。主线程只负责监听客户端连接,使用acce

2021-12-22 21:25:45 1938

原创 三次握手四次挥手及TCP协议特点

三次握手tcp固定的头部结构中,含有6位标志:其中我们主要介绍一下ACK,SYN两个标志。ACK标志,表示确认号是否有用,我们称带有ACK标志的tcp报文为确认报文段;SYN标志,表示请求建立连接,称带有SYN标志的tcp报文为同步报文段。四次挥手多进程,多线程的并发执行可靠性...

2021-12-22 14:01:30 1453

原创 Socket网络编程之TCP编程——代码

Socket网络编程之TCP编程——代码

2021-12-21 23:17:32 959

原创 make和makefile

目录makefile是什么?makefile的编写stat查看makefile的更新伪目标约定俗成的伪目标自定义变量和系统变量makefile中自定义变量系统变量makefile是什么?通常一个大型程序是由多个程序模块文件构成的,按照其功能划分,模块文件会分布在不同的目录中。模块文件之间有包含头文件、调用函数的情况,它们之间存在依赖关系。而makefile中就存放着这些函数的依赖关系。make命令通过解析makefile文件,自动找出变更的文件以及依赖此.

2021-12-21 14:23:04 148

原创 解决安装vmware-tools出现报错unable to copy the source file./installer/service.sh to the destination file

解决安装vmware-tools出现报错unable to copy the source file./installer/service.sh to the destination file

2021-12-16 13:15:20 3906 6

原创 生产者消费者问题

生产者消费者模型概述 生产者消费者问题也称为有限缓冲问题 。大概描述就是:两个或更多的线程共享一个缓冲区,其中一个或多个线程作为“生产者”向缓冲区存储数据,另一个或多个线程作为“消费者”从缓冲区取出问题。...

2021-12-16 10:55:10 1331

原创 操作系统:什么是中断?

中断是指CPU在执行当前程序时系统出现了某种状况,使得CPU必须停止当前程序,而去执行另一段程序来处理的出现的紧急事务,处理结束后CPU再返回到原先暂停的程序继续执行,这个过程就称为中断。

2021-12-09 20:30:17 18352 2

原创 C++之内联函数

明智的使用内联函数

2021-12-04 19:00:14 797

原创 从C转向C++:尽量用编译器而不用预处理

目录一、const二、inline简单来说,“尽量用编译期而不用预处理”的意思就是“尽量使用const和inline而不是#define”一、const#define MAX 10当你定义一个MAX为10时,编译器会永远也看不到MAX这个符号名,因为在代码进入编译器之前会被预处理程序去掉。如果涉及到这个常量的代码在编译时报错,就会很令人费解,因为报错信息指的是10,而不是MAX。在调试的时候就很难追踪到这个数值是从哪里来的。而解决这个问题的方案很简单,就是不用预处理宏,定义一

2021-11-30 19:34:58 584 1

空空如也

空空如也

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

TA关注的人

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