<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[chenyangshuai的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/chenyangshuai</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; chenyangshuai]]></copyright><item><title><![CDATA[传输层学习总结]]></title><link>https://blog.youkuaiyun.com/chenyangshuai/article/details/121350820</link><guid>https://blog.youkuaiyun.com/chenyangshuai/article/details/121350820</guid><author>chenyangshuai</author><pubDate>Tue, 16 Nov 2021 10:38:48 +0800</pubDate><description><![CDATA[传输层学习总结
传输控制协议（TCP）												  ——RFC793
​	传输控制协议（Transmission Control Protocol,TCP）最终目的是为了数据提供可靠的端到端传输。TCP被认为是一个面向连接的协议，因为它会正式的开启和关闭通道。
TCP端口
​	所有TCP通信都会使用源端口和目的端口，而这些可以在每个TCP头中找到。端口就像老式电话总机上的插口（socket）。
​	在使用TCP进行通信的时候，我们有65535个端口可以使用。

1～1023是标准端口组（忽略掉]]></description><category></category></item><item><title><![CDATA[网络层学习总结]]></title><link>https://blog.youkuaiyun.com/chenyangshuai/article/details/121349038</link><guid>https://blog.youkuaiyun.com/chenyangshuai/article/details/121349038</guid><author>chenyangshuai</author><pubDate>Tue, 16 Nov 2021 09:40:04 +0800</pubDate><description><![CDATA[网络层学习总结
地址解析协议ARP（RFC826）
​	ARP用于希望得到目标IP地址的MAC硬件地址，OSI第二层（数据链路层）采用MAC地址
ARP请求

源IP地址：192.168.0.101
源MAC地址：f2:f2:f2:f2:f2:f2
目标IP地址：192.168.0.1
目标MAC地址：00:00:00:00:00:00

ARP响应

源IP地址：192.168.0.1
源MAC地址：f1:f1:f1:f1:f1:f1
目标IP地址：192.168.0.101
目标MAC地址：f2:f2:]]></description><category></category></item><item><title><![CDATA[四、命名空间]]></title><link>https://blog.youkuaiyun.com/chenyangshuai/article/details/120710639</link><guid>https://blog.youkuaiyun.com/chenyangshuai/article/details/120710639</guid><author>chenyangshuai</author><pubDate>Mon, 11 Oct 2021 20:05:20 +0800</pubDate><description><![CDATA[四、命名空间
​	1、为什么需要命名空间
​		由于c++完全兼容c语言
​	2、什么命名空间
​		c++中设计一种对全局作用域再次划分逻辑作用域是一种新的解决命名冲突的技术
namespace 空间名
{
    全局变量
    函数
    结构、联合、枚举
    类
}

​	3、如何使用
​		1、域限定符
​			空间名 :: 标识符
​		2、导入名字空间
​			using namespace 空间名；
五、c++中专门管理堆内存的语句，而c语言中只能使用标准库函数来管理内存
​	new]]></description><category></category></item><item><title><![CDATA[pthread_tcp_server_sem]]></title><link>https://blog.youkuaiyun.com/chenyangshuai/article/details/120710629</link><guid>https://blog.youkuaiyun.com/chenyangshuai/article/details/120710629</guid><author>chenyangshuai</author><pubDate>Mon, 11 Oct 2021 20:04:48 +0800</pubDate><description><![CDATA[基于信号量（sem）的多线程tcp传输—服务端
pthread_tcp_server_sem
信号量：
信号量是一个计数量，与进程间通信使用的信号量原理一样，用于控制访问有限的共享资源。
sem_t
int sem_init(sem_t *sem, int pshared, unsigned int value);

功能：初始化信号量

pshared：

​    一般取0，表示进程内，多个线程之间共享使用。
​    非0，该信号量以共享内存方式，让多个进程使用，但Linux系统不支持。

value]]></description><category></category></item><item><title><![CDATA[epoll]]></title><link>https://blog.youkuaiyun.com/chenyangshuai/article/details/120710608</link><guid>https://blog.youkuaiyun.com/chenyangshuai/article/details/120710608</guid><author>chenyangshuai</author><pubDate>Mon, 11 Oct 2021 20:04:27 +0800</pubDate><description><![CDATA[epoll --服务器端
int epoll_create(int size);

功能：用于创建一个epoll对象，该对象可以保存被监控的描述符。

size：epoll对保存描述符的数量

返回值：epoll对象的描述符
int epoll_ctl(int epfd, int op, int fd, struct epoll_event *event);

功能：控制epoll对象，添加、删除描述符


epfd：epoll对象描述符


op:
​    EPOLL_CTL_ADD 添加描述符
​  ]]></description><category></category></item><item><title><![CDATA[本地套接字]]></title><link>https://blog.youkuaiyun.com/chenyangshuai/article/details/120710600</link><guid>https://blog.youkuaiyun.com/chenyangshuai/article/details/120710600</guid><author>chenyangshuai</author><pubDate>Mon, 11 Oct 2021 20:03:07 +0800</pubDate><description><![CDATA[本地套接字
1、基本原理
​    把网络服务抽象成文件(套接字文件)，按照网络通信的格式，进行进程间通信。
2、常用函数
int socket(int domain, int type, int protocol);



功能：创建socket对象

domain：通信方式

​      	AF_UNIX 本地套按字
​      	AF_INET 网络通信

type：数据的发送方式

​     	 SOCK_STREAM 数据流
​      	SOCK_DGRAM 报文


protocol：]]></description><category></category></item><item><title><![CDATA[关于快速“快速排序“的学习]]></title><link>https://blog.youkuaiyun.com/chenyangshuai/article/details/119831231</link><guid>https://blog.youkuaiyun.com/chenyangshuai/article/details/119831231</guid><author>chenyangshuai</author><pubDate>Fri, 20 Aug 2021 20:47:56 +0800</pubDate><description><![CDATA[关于快速**“快速排序“**的学习
​		快速排序是对起泡排序的一种改进。它的基本思想是，通过一趟排序将待排记录分割成独立的两部分，其中一部分记录的关键字均比另一部分记录的关键字小，则可分别对这两部分记录记录继续进行排序，以达到整个序列有序。
​		一趟快速排序的具体做法是：附设两个指针low和high，它们的初值分别为low和hight，设枢纽记录的关键字为pivotkey，则首先从high所指位置起向前搜索，找到第一个关键字小于pivokey的记录与其互相交换，然后从low所指位置起向后搜索，找到第一个]]></description><category></category></item><item><title><![CDATA[关于堆排序的学习总结]]></title><link>https://blog.youkuaiyun.com/chenyangshuai/article/details/119546845</link><guid>https://blog.youkuaiyun.com/chenyangshuai/article/details/119546845</guid><author>chenyangshuai</author><pubDate>Mon, 09 Aug 2021 20:59:26 +0800</pubDate><description><![CDATA[关于堆排序的学习总结
堆的定义
​		n个元素的序列{k1,k2,···，kn}，当满足(k1 &lt;= k2, ki &lt;= k2i+1)或(k1 &gt;= k2, ki &gt;= k2i+1)时，可称之为堆。
​		若将堆看作二叉树，则有两种形式（大根堆，小根堆），即层序遍历每一层都比上一层小（大）；而堆顶元素（完全二叉树的根）必为其序列的最大（小）值；

​												1-1大根堆与小根堆
堆的排序
​		其实堆排序可以用一句话来概括：“创建堆，用***最末值***替出***堆顶]]></description><category></category></item><item><title><![CDATA[关于堆排序的学习总结]]></title><link>https://blog.youkuaiyun.com/chenyangshuai/article/details/119546767</link><guid>https://blog.youkuaiyun.com/chenyangshuai/article/details/119546767</guid><author>chenyangshuai</author><pubDate>Mon, 09 Aug 2021 20:54:31 +0800</pubDate><description><![CDATA[关于堆排序的学习总结
堆的定义
​		n个元素的序列{k1,k2,···，kn}，当满足(k1 &lt;= k2, ki &lt;= k2i+1)或(k1 &gt;= k2, ki &gt;= k2i+1)时，可称之为堆。
​		若将堆看作二叉树，则有两种形式（大根堆，小根堆），即层序遍历每一层都比上一层小（大）；而堆顶元素（完全二叉树的根）必为其序列的最大（小）值；

​																1-1大根堆与小根堆
堆的排序
​		其实堆排序可以用一句话来概括：“创建堆，用***最末值***替出*]]></description><category></category></item><item><title><![CDATA[进程内存分布 与 类型限定符]]></title><link>https://blog.youkuaiyun.com/chenyangshuai/article/details/118656351</link><guid>https://blog.youkuaiyun.com/chenyangshuai/article/details/118656351</guid><author>chenyangshuai</author><pubDate>Sun, 11 Jul 2021 16:56:07 +0800</pubDate><description><![CDATA[进程内存分布


text 代码段：
​		存储的是二进制指令、常量(字符串字面值)，该内存段的权限为只读，一旦强行修改就会产生段错误。


data 全局数据段：
​		里面存储着初始化过的全局变量、静态变量。


bss 静态数据段：
​		里面存储着末初始化过的全局变量、静态变量，该内存段在程序执行前会被初始化为0。


heap 堆：
​		由于程序员手动管理，该内存无法与标识符建立映射关系(无法取名字)，必须与指针配合使用。

优点：够大，分配和释放可控。
缺点：使用麻烦，容易产生内存泄漏、内存碎]]></description><category></category></item><item><title><![CDATA[Markdown的学习记录（Typora）]]></title><link>https://blog.youkuaiyun.com/chenyangshuai/article/details/118634063</link><guid>https://blog.youkuaiyun.com/chenyangshuai/article/details/118634063</guid><author>chenyangshuai</author><pubDate>Sat, 10 Jul 2021 13:18:53 +0800</pubDate><description><![CDATA[Markdown的学习记录（Typora）


无序标题：  -标题名


查看源代码的快捷键：ctrl+/


输入c代码： ```c


1、标题
//标题共6种级别
/*****************************************
# 一级标题
## 二级标题
### 三级标题
#### 四级标题
##### 五级标题
###### 六级标题
*****************************************/


示例

一级标题
二级标题
三级标题
四级标题
五]]></description><category></category></item></channel></rss>