<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[波风水门的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/Jokersorry</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; Jokersorry]]></copyright><item><title><![CDATA[项目——备份系统]]></title><link>https://blog.youkuaiyun.com/Jokersorry/article/details/119184624</link><guid>https://blog.youkuaiyun.com/Jokersorry/article/details/119184624</guid><author>Jokersorry</author><pubDate>Thu, 19 Aug 2021 20:13:50 +0800</pubDate><description><![CDATA[目录简介功能
简介
功能

搭建云备份服务器与客户端，客户端针对主机上指定目录下的文件自动备份到服务器，服务端会对


]]></description><category></category></item><item><title><![CDATA[项目——订单系统]]></title><link>https://blog.youkuaiyun.com/Jokersorry/article/details/117714701</link><guid>https://blog.youkuaiyun.com/Jokersorry/article/details/117714701</guid><author>Jokersorry</author><pubDate>Thu, 19 Aug 2021 19:54:08 +0800</pubDate><description><![CDATA[目录项目描述功能技术点框架详细设计数据管理模块业务控制模块前端界面模块代码SQL
项目描述
功能

用户可以通过浏览器访问服务器获取菜品信息并进行点餐；
管理员可以通过浏览器访问服务器实现订单以及菜品的管理；

技术点

线程、socket、http、json、MySQL、stl；

框架

框架：简单 MVC 框架；
M（Model）：数据管理模块，管理数据——菜品、订单，外界想要访问数据必须通过这个模块完成，不能直接访问；
V（View）：视图界面模块，浏览器的前端所展示的界面，用户或者管理员的操作都是]]></description><category></category></item><item><title><![CDATA[MySQL代码操作]]></title><link>https://blog.youkuaiyun.com/Jokersorry/article/details/119077450</link><guid>https://blog.youkuaiyun.com/Jokersorry/article/details/119077450</guid><author>Jokersorry</author><pubDate>Tue, 27 Jul 2021 11:08:07 +0800</pubDate><description><![CDATA[目录初始化操作数据操作
初始化操作

初始化操作句柄：MYSQL* mysql_init(MYSQL* mysql)；
通过句柄连接 MySQL 服务器：

MYSQL* mysql_real_connect(MYSQL* mysql, const char* host, const char* user,
						  const char* passwd,const char* dbname, unsigned int port,
						  const char* unix_socket, un]]></description><category></category></item><item><title><![CDATA[MySQL事务]]></title><link>https://blog.youkuaiyun.com/Jokersorry/article/details/119115571</link><guid>https://blog.youkuaiyun.com/Jokersorry/article/details/119115571</guid><author>Jokersorry</author><pubDate>Tue, 27 Jul 2021 10:41:28 +0800</pubDate><description><![CDATA[目录事务介绍问题概念特性版本支持提交方式事务操作指令介绍总结事务隔离概念问题隔离级别一致性MVCC介绍概念前置知识
事务介绍
问题

有这样一个场景：A 与 B 去买票，此时还剩下最后一张票，A 先进行访问，A 发现有一张票，所以进行购买，当系统将票卖给 A，但是还没有执行更新数据库操作时，B 也对系统进行访问，B 发现还有一张票，于是也进行购买，那么一张票就被卖了两次，这是不合理的；

概念

概念：事务就是一组 DML 语句组成，这些语句在逻辑上存在相关性，这一组 DML 语句要么全部成功，要么全部失败]]></description><category></category></item><item><title><![CDATA[MySQL索引]]></title><link>https://blog.youkuaiyun.com/Jokersorry/article/details/119084119</link><guid>https://blog.youkuaiyun.com/Jokersorry/article/details/119084119</guid><author>Jokersorry</author><pubDate>Mon, 26 Jul 2021 17:49:06 +0800</pubDate><description><![CDATA[目录介绍
介绍

]]></description><category></category></item><item><title><![CDATA[MySQL表进阶操作]]></title><link>https://blog.youkuaiyun.com/Jokersorry/article/details/118877332</link><guid>https://blog.youkuaiyun.com/Jokersorry/article/details/118877332</guid><author>Jokersorry</author><pubDate>Sun, 25 Jul 2021 16:55:21 +0800</pubDate><description><![CDATA[目录数据库约束约束类型聚合函数分组查询三大范式多表联查连接方式
数据库约束
约束类型

NOT NULL：指示某列不能存储 NULL 值，也就是必须赋值，否则报错；
UNIQUE：保证某一列的每一行都必须是唯一值；
DEFAULT：规定没有给列赋值时的默认值；
PRIMARY KEY：NOT NULL和UNIQUE的结合，确保某列（或两个列多个列的结合）有唯一标识，有助于更容易更快速地找到表中的一个特定的记录；
PRIMARY KEY(字段1, 字段2...)：当主键由多个字段组成时，不能直接在字段后面声明]]></description><category></category></item><item><title><![CDATA[MySQL表的增删改查]]></title><link>https://blog.youkuaiyun.com/Jokersorry/article/details/118874739</link><guid>https://blog.youkuaiyun.com/Jokersorry/article/details/118874739</guid><author>Jokersorry</author><pubDate>Sun, 25 Jul 2021 16:54:49 +0800</pubDate><description><![CDATA[目录新增全列插入指定列插入多行插入修改删除查询全列查询指定列查询查询字段为表达式别名查询去重查询排序查询分页查询条件查询
新增
全列插入

insert into 表名称 values(数据1, 数据2, 数据3...);：所添加的数据必须和创建表时所设置字段的顺序、个数保持一致；

指定列插入

insert into 表名称(字段1, 字段2, 字段3...) values(数据1, 数据2, 数据3...);：在指定字段插入相应数据；

多行插入

insert into 表名称 values(数据1]]></description><category></category></item><item><title><![CDATA[MySQL数据库基础]]></title><link>https://blog.youkuaiyun.com/Jokersorry/article/details/118873348</link><guid>https://blog.youkuaiyun.com/Jokersorry/article/details/118873348</guid><author>Jokersorry</author><pubDate>Sun, 18 Jul 2021 17:20:36 +0800</pubDate><description><![CDATA[目录注意事项库的操作进入数据库显示数据库创建数据库使用数据库删除数据库常用数据类型整型与浮点型字符串类型日期类型表的操作创建表查看表删除表修改表
注意事项

SQL 语句中，每条语句都应该以;结尾；
SQL 语句中，并不区分大小写，也不区分单引号双引号，都是一样的；
SQL 语句中，数据库名称、表名称、字段名称并不能直接使用 SQL 中的关键字，如果非要使用，则需要将冲突的名字使用 “ ` ”（反引号）括起来；

库的操作
进入数据库

mysql -u用户名 -p：输入指令后敲回车，此时如果设置了密码，则]]></description><category></category></item><item><title><![CDATA[高级I/O]]></title><link>https://blog.youkuaiyun.com/Jokersorry/article/details/118465099</link><guid>https://blog.youkuaiyun.com/Jokersorry/article/details/118465099</guid><author>Jokersorry</author><pubDate>Thu, 15 Jul 2021 11:44:23 +0800</pubDate><description><![CDATA[目录

]]></description><category></category></item><item><title><![CDATA[Linux网络——链路层协议]]></title><link>https://blog.youkuaiyun.com/Jokersorry/article/details/118460880</link><guid>https://blog.youkuaiyun.com/Jokersorry/article/details/118460880</guid><author>Jokersorry</author><pubDate>Wed, 07 Jul 2021 10:45:51 +0800</pubDate><description><![CDATA[目录以太网协议协议格式
以太网协议
协议格式

图片
48 位源端 / 对端 Mac 地址：


]]></description><category></category></item><item><title><![CDATA[Linux网络——网络层协议]]></title><link>https://blog.youkuaiyun.com/Jokersorry/article/details/118274757</link><guid>https://blog.youkuaiyun.com/Jokersorry/article/details/118274757</guid><author>Jokersorry</author><pubDate>Tue, 06 Jul 2021 09:56:45 +0800</pubDate><description><![CDATA[目录IP协议协议格式地址管理
IP协议
协议格式

4 位版本号(version)：指定 IP 协议的版本，对于 IPv4 来说就是 4；
4 位头部长度(header length)：以 4 字节为单位，所以 IP 头部的长度是多少个 32bit，也就是 length * 4 的字节数，因为 4bit 表示最大的数字是 15，所以 length = 15，因此 IP 头部最大长度是 60 字节；
8 位服务类型(Type Of Service): 3 位优先权字段(已经弃用)，4 位 TOS 字段，和 1]]></description><category></category></item><item><title><![CDATA[Linux网络——传输层协议]]></title><link>https://blog.youkuaiyun.com/Jokersorry/article/details/118114349</link><guid>https://blog.youkuaiyun.com/Jokersorry/article/details/118114349</guid><author>Jokersorry</author><pubDate>Mon, 05 Jul 2021 10:15:02 +0800</pubDate><description><![CDATA[目录UDP协议协议格式协议特性注意事项TCP协议协议格式协议特性面向连接
UDP协议
协议格式
图片

16 位源端和对端端口：用于描述识别通信两端进程；
16 位数据报长度：能够存储的最大数据长度 65535，所以 udp 报文大小最大不能超过 64k，这其中是包含头部的 8k 大小的；
16 为校验和：采用二进制反码求和算法，校验接收方接受到的数据与发送方发送的数据是否一致；

协议特性

无连接：通信时不需要建立连接，只要知道对方地址就可以直接发送数据；
不可靠：不保证数据安全并且有序的到达对端；
面]]></description><category></category></item><item><title><![CDATA[Linux网络——应用层协议]]></title><link>https://blog.youkuaiyun.com/Jokersorry/article/details/117618991</link><guid>https://blog.youkuaiyun.com/Jokersorry/article/details/117618991</guid><author>Jokersorry</author><pubDate>Thu, 17 Jun 2021 09:22:17 +0800</pubDate><description><![CDATA[目录深聊协议自定制协议HTTP协议概念协议格式首行请求行响应行头部空行正文注意
深聊协议

socket api（套接字）的接口，在读写数据时都是按照 01 二进制的方式来接收的，那么当我们要传输一些结构复杂的数据时，该怎么办呢？
这时候就需要用到协议了，协议就是一种约定，约定好

自定制协议

概念：负责应用程序之间的沟通，是程序员自定制数据格式，但是定制的同时需要考虑传输性能、解析性能，以及如何组织更加适用于当前的应用场景；
应用层协议：如何将多个数据对象组织成为一个二进制数据串进行传输；
考虑要素：传]]></description><category></category></item><item><title><![CDATA[Linux网络——套接字编程]]></title><link>https://blog.youkuaiyun.com/Jokersorry/article/details/116852053</link><guid>https://blog.youkuaiyun.com/Jokersorry/article/details/116852053</guid><author>Jokersorry</author><pubDate>Thu, 10 Jun 2021 14:16:58 +0800</pubDate><description><![CDATA[目录UDP协议概念程序编写接口介绍TCP协议概念通信两端概念
UDP协议
概念

概念：UDP 协议又叫用户数据报协议；
特性：无连接、不可靠、面向数据报；
应用场景：实时性要求大于安全性的要求的场景；

程序编写

服务端流程

创建套接字，在内存中创建一个socket结构体；
为套接字绑定地址信息，在创建套接字时所创建的socket结构体中加入 IP + port，目的是为了告诉操作系统，主机接收到的哪些数据应该交给当前的这个socket，并且还而已确定发送数据的源端地址信息；
接收数据，当前进程从指定]]></description><category></category></item><item><title><![CDATA[STL——算法]]></title><link>https://blog.youkuaiyun.com/Jokersorry/article/details/117572430</link><guid>https://blog.youkuaiyun.com/Jokersorry/article/details/117572430</guid><author>Jokersorry</author><pubDate>Fri, 04 Jun 2021 21:18:07 +0800</pubDate><description><![CDATA[目录`accumulate``count`与`count_if``find`与`find_if``max`与`min``merge``partial_sort``partition``reverse``sort``unique``next_permutation`与`pre_permutation`
accumulate

该算法作用是对某区间中的元素进行累加，使用时必须添加头文件&lt;numeric&gt;；

// 对[first, last)区间中元素在init的基础上进行累加
template &]]></description><category></category></item><item><title><![CDATA[类型转换与空间配置器]]></title><link>https://blog.youkuaiyun.com/Jokersorry/article/details/117552836</link><guid>https://blog.youkuaiyun.com/Jokersorry/article/details/117552836</guid><author>Jokersorry</author><pubDate>Fri, 04 Jun 2021 19:36:13 +0800</pubDate><description><![CDATA[目录类型转换概念C++ 的四种转换空间配置器
类型转换
概念

C 语言中的类型转换：

隐式类型转化：编译器在编译阶段自动进行，能转就转，不能转就编译失败；
显式类型转化：需要用户自己判断从什么类型转换为什么类型，转换格式为在需要转换的变量前加(要转换的类型)；


为什么需要 C++ 中的类型转换：

隐式类型转化有些情况下可能会出问题：比如数据精度丢失；
显式类型转换将所有情况混合在一起，代码不够清晰；
因此 C++ 提出了自己的类型转化风格，注意因为 C++ 要兼容 C 语言，所以 C++ 中还可以]]></description><category></category></item><item><title><![CDATA[特殊类设计]]></title><link>https://blog.youkuaiyun.com/Jokersorry/article/details/117513954</link><guid>https://blog.youkuaiyun.com/Jokersorry/article/details/117513954</guid><author>Jokersorry</author><pubDate>Fri, 04 Jun 2021 10:27:29 +0800</pubDate><description><![CDATA[目录设计一个类，只能在堆上创建对象实现方法设计一个类，只能在栈上创建对象实现方法一实现方法二设计一个类，不能被拷贝实现方法设计一个类，不能被继承实现方法设计一个类，只能创建一个对象概念饿汉模式懒汉模式
设计一个类，只能在堆上创建对象
实现方法

将构造函数私有化，只给用户提供一个获取对象的接口，接口内部是在堆上创建对象；
因为用户不能自己创建对象，所以就无法调用我们的接口来获取对象，所以这个接口必须被设计为静态接口，这样用户可以通过类名来调用接口获取对象；
因为拷贝构造出来的对象是在栈上，所以我们应该将拷贝]]></description><category></category></item><item><title><![CDATA[C++智能指针]]></title><link>https://blog.youkuaiyun.com/Jokersorry/article/details/117459619</link><guid>https://blog.youkuaiyun.com/Jokersorry/article/details/117459619</guid><author>Jokersorry</author><pubDate>Thu, 03 Jun 2021 10:32:17 +0800</pubDate><description><![CDATA[目录内存泄漏分类检测智能指针原理RAII简单实现`auto_ptr`概念实现`unique_ptr`概念实现`shared_ptr`概念安全问题实现循环引用删除器
内存泄漏
分类

堆内存泄漏(Heap leak)
堆内存指的是程序执行中依据须要分配通过malloc / calloc / realloc / new等从堆中分配的一块内存，用完后必须通过调用相应的free / delete / delete[]删掉，假设程序的设计错误导致这部分内存没有被释放，那么以后这部分空间将无法再被使用，就会产生 Hea]]></description><category></category></item><item><title><![CDATA[线程库和异常]]></title><link>https://blog.youkuaiyun.com/Jokersorry/article/details/117400385</link><guid>https://blog.youkuaiyun.com/Jokersorry/article/details/117400385</guid><author>Jokersorry</author><pubDate>Wed, 02 Jun 2021 08:55:25 +0800</pubDate><description><![CDATA[目录线程库概念
线程库
概念

在C++11之前，涉及到多线程问题，都是和平台相关的，比如windows和linux下各有自己的接口，这使得
代码的可移植性比较差。C++11中最重要的特性就是对线程进行支持了，使得C++在并行编程时不需要依赖
第三方库，而且在原子操作中还引入了原子类的概念。要使用标准库中的线程，必须包含&lt; thread &gt;头文
件。


...]]></description><category></category></item><item><title><![CDATA[C++11新特性]]></title><link>https://blog.youkuaiyun.com/Jokersorry/article/details/117379273</link><guid>https://blog.youkuaiyun.com/Jokersorry/article/details/117379273</guid><author>Jokersorry</author><pubDate>Sun, 30 May 2021 16:13:10 +0800</pubDate><description><![CDATA[目录列表初始化背景内置类型自定义类型变量类型推导`auto``decltype`默认成员函数控制背景显示缺省函数删除默认构造右值引用左值与右值引用
列表初始化
背景

问题：

在 C++98 中，标准允许使用花括号 {} 对数组元素进行统一的列表初始值设定，如：
int array1[] = {1,2,3,4,5};
int array2[5] = {0};

对于一些自定义的类型，却无法使用这样的初始化,如下面的这些操作在C++98中是不被允许的：
vector&lt;int&gt; v{1,2,3,4]]></description><category></category></item></channel></rss>