自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 多路转接(下)——Reator模式

使用Reactor模式编写服务器

2023-11-10 14:38:19 281 3

原创 多路转接(中)——poll和epoll

poll、epoll相关接口的介绍和两种服务器的编写

2023-11-10 13:47:34 264 1

原创 多路转接(上)——select

select服务器的编写

2023-11-09 22:07:52 633 2

原创 五种IO模型

详解五种IO模型

2023-11-05 15:14:38 170

原创 NAT技术与代理服务器

NAT、NAPT协议和代理服务器

2023-10-26 11:15:01 1418 2

原创 DNS和ICMP协议

DNS协议和ICMP协议的介绍

2023-10-22 11:58:57 270 1

原创 数据链路层

本篇文章主要介MAC桢协议和ARP协议

2023-10-21 23:46:18 676 1

原创 IP协议(下)

IP协议的最后一部分,IP分片

2023-10-21 10:59:24 279 4

原创 IP协议(上)

IP协议的介绍

2023-10-19 23:10:47 935 5

原创 UDP与TCP协议

在完成HTTPS的学习后,我们就完成了应用层的所有讲解,下面我们开始讲解传输层,这一层常用的协议为TCP和UDP。

2023-10-16 19:27:22 842 3

原创 HTTPS协议

数字指纹(数据摘要):其基本原理是利⽤单向散列函数(哈希函数)对信息进⾏运算,⽣成⼀串固定⻓度的数字摘要。数字指纹不是加密机制,但可以⽤来判断数据有没有被窜改。如果有两个非常大的文本文件,如果我们逐字逐句地去核对该文件中的内容,那么付出的精力会相当大。如果我们使用某个Hash算法将文本内容转化为一个长度固定的字符串,那比较起来就简单很多了。该字符串就被称为数据摘要,由于重复性极低,所以也称为数据指纹。常用的算法有MD5、SHA1、SHA256、SHA512等。

2023-10-07 22:58:24 200

原创 HTTP协议

然后,先将目录设置为./wwwroot,此时再拼接传递过来的url,如果url为/则拼接出来的是./wwwroot/,如果是其他的内容比如a/b/c.html,最后得到的是./wwwroot/a/b/c.html。首先,我们在保存服务器代码的目录中创建一个wwroot目录作为http访问的网络根目录,然后在内部创建两个html文件和一个test目录,index.html用于构建网站的首页,404.html用于构建非法访问返回的404页面,test目录下也储存两个构建网站的代码。

2023-10-07 22:47:50 184

原创 网络协议定制

协议本质是一种“约定”,在前面的TCP和UDP网络通信中,读写数据的时候都是按照"字符串"的形式发送和接收的,那我们如果不发送字符串,而是要传送一些结构化的数据怎么办呢?比如说,我们观察QQ或微信的聊天窗口,屏幕上的信息包括头像(url)、时间、昵称、消息等。用户发送的消息虽然大部分是字符串,但是经过用户层(QQ或微信软件)处理后,还需要增加头像,时间,昵称等信息。如果我们将这几个信息看做多个字符串,那么就可以将这多个字符串形成一个结构化的数据,比如下面示例的struct message。

2023-09-24 20:34:58 424

原创 socket套接字——TCP协议

每次这个logmessage函数都把格式化的信息达到屏幕上,告诉我们程序的状态,当然我们也可以把它同时写到文件中,这也是它的一个简单的日志。由于网络的操作步骤多,查找bug困难,所以我们在程序运行到某一个阶段时都告诉我们当前的操作是完成了还是没完成,新建一个log.hpp。启动服务器需要使用accept函数等待客户端的连接,无连接请求会阻塞等待,出现连接请求则会返回一个用于通信的文件描述符。下面的代码包括了所有类型的实现,通过注释不同的字段,就可以实现不同的版本。(现在的为线程池版本)

2023-09-16 18:06:43 2643 4

原创 socket套接字——UDP协议

当bind绑定的IP地址是0.0.0.0的时候,这台计算机就会接收所有网络的请求,也会根据相关的端口处理。是一个输出型参数,使用网路通信就需要传参一个sockaddr_in的结构体,函数会根据发来的数据信息将这个结构体填充,包括获取数据的来源,包括发送方的地址类型,端口号port和IP地址。如果服务器仅绑定本地环回的IP地址,那么当另一台计算机的客户端想要通过公网IP向计算机发出请求时,由于绑定的IP地址与客户端IP地址不一样,服务端就会忽略客户端的请求。然后bind就会执行该结构体的对应操作。

2023-09-13 13:09:07 981

原创 网络编程基础

在学习网络编程前我们需要了解这些知识

2023-09-09 23:25:30 863 3

原创 线程池的实现

Linux系统编程的所有知识已经学完了,让我们实现一个线程池,检查我们的学习情况。

2023-09-07 18:10:34 858

原创 自旋锁和读写锁

详解自旋锁和读写锁

2023-09-05 22:58:28 694

原创 基于环形队列的生产消费模型

本篇文章我们将学习信号量并通过信号量实现基于环形队列的生产消费模型

2023-09-05 16:12:37 139

原创 基于阻塞队列的生产消费模型

基于阻塞队列的生产者消费者模型,多线程同步与互斥的综合应用

2023-09-03 19:44:18 914 2

原创 Linux线程互斥

多线程运行时,线程的互斥运行至关重要,本文详解线程互斥相关问题

2023-09-01 23:51:08 821 1

原创 Linux线程控制

简单的线程控制

2023-08-31 17:57:11 1269 2

原创 Linux线程概念

页表的大致原理和线程的初步认识

2023-08-29 21:11:59 813 2

原创 Linux进程信号

在我们不知情的时候,我们就已经在使用信号了,比如在XShell和VSCode中用Ctrl+c就是发送信号终止当前程序的。那就请通过这篇文章,让我们认识并理解这个既熟悉又陌生的朋友。

2023-08-14 19:37:44 823 3

原创 VScode的简单使用

本文意在帮助新人快速上手最基础的VSCode操作

2023-07-30 00:22:44 5488

原创 C++特殊类设计及类型转换

特殊类、单例模式和特殊类型转换,这些都是我们学习的细节部分,虽然不是很重要但也需要了解

2023-07-16 16:56:03 319

原创 Linux进程间通信

每个进程之间虽然是相互独立的,但不能说它们就不能相互协作,进程间通信便是它们合作的基础

2023-07-14 13:24:30 1620 4

原创 C++智能指针

智能指针是什么?它到底智能在哪里,一文解决你的疑惑。

2023-07-11 18:26:40 1109 3

原创 C++异常

在C语言的学习中,当一个C程序出现错误时这个C程序会退出并返回错误码,而在C++中对错误的处理方式不再是对程序的暴力终止,而是以一种叫抛异常的方式进行,本文章就是抛异常的详细解释。

2023-07-06 23:23:39 1093 3

原创 C++11

C++11,不是那么C++的C++

2023-05-11 22:12:01 1661 4

原创 C++哈希

关于哈希的概念、模拟实现与应用

2023-05-08 17:57:45 2121 2

原创 map和set

STL的map和set,一文搞定

2023-05-08 17:06:09 836

原创 红黑树的概念与实现

平衡搜索二叉树的不严格状态——红黑树

2023-04-30 22:19:49 1019

原创 二叉搜索树和AVL树

二叉搜索树和平衡二叉搜索树

2023-04-04 22:34:21 910

原创 C++多态

C++最后的面向对象特征——多态

2023-03-08 16:11:35 762

原创 C++继承

C++继承,注意细节

2023-02-24 11:49:43 945

原创 stack、queue和priority_queue

适配器模式的首秀

2023-02-12 18:11:52 1365

原创 list类的使用和模拟实现

STL中的list类,在这里我们详解迭代器的奥秘

2023-02-10 22:58:35 781

原创 vector类的模拟实现

最常使用的数据结构vector的简单实现

2023-02-08 14:59:50 410

原创 Linux基础IO

文件操作是怎么实现的?文件系统到底是怎么回事?这篇文章统统告诉你。

2023-02-06 11:17:13 1897 1

空空如也

空空如也

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

TA关注的人

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