TCP协议分析 1 TCP服务的特点 传输层协议主要有两个:TCP协议和UDP协议。TCP协议相对于UDP协议的特点是:面向连接、字节流和可靠传输。 对于TCP协议而言,发送端执行的写操作次数和接收端执行的读操作次数之间没有任何数量关系,这即字节流的概念:应用程序对数据的发送和接收是没有边界限制的。UDP则不同。发送端应用程序每执行一次写操作,UDP模块就将其封装成一个UDP数据报并发送之,接收端必须及时...
C++ 实现单例模式小结 单例模式1.1定义以及作用保证一个类仅有一个实例,并提供一个访问它的全局访问点。保证一个类只有一个对象,降低对象之间的耦合度1.2 特点某个类只能有一个实例;其必须自行创建这个实例;必须自行向整个系统提供这个实例。优点:活动的单例只有一个实例,对单例类的所有实例化得到的都是相同的一个实例。这样就防止了其他对象对自己就行实例化,确保每个对象都访问一个实例提供了对唯一实例的受控访问避...
C++实现工厂模式及解析 工厂模式1 工厂方法模式1.1 定义以及作用通过定义工厂父类负责定义创建对象的公共接口,而子类则负责生成具体的对象。工厂方法使一个类的实例化延迟到其子类,即由子类来决定应该实例化(创建)哪一个类1.2 特点克服了简单工厂的缺点:违背了开放-封闭原则的缺点工厂方法模式将具体产品的创建推迟到工厂类的子类(具体工厂)中,工厂父类不在负责所有产品的创建,而只是给出具体工厂必须实现的接口。工厂...
博客随笔——记写博客一周年 前几天在知乎上看到一个问题:零基础如何自学编程。其中一个回答让我意识到自己在学习编程的方法上有所欠缺。自认为回答描述的几个区别非常具有典型性:记笔记 VS 写技术文章以学会XX为目标 VS 以做出XX为目标线性学习 VS 递归学习厌恶不确定性 VS 接受不确定性拿会XX定义自己 VS 拿XX项目作者定义自己回顾这一年来写的博客,结合回答者的内容,发现自己写部分博客只是单纯的笔记...
函数参数入栈解析 栈:用于维护函数调用的上下文,通常在用户空间的最高地址处分配,增长方向向低地址增长。在i386下,栈顶由esp寄存器进行定位,压栈的操作使栈顶的地址减小,即esp减小;弹出的操作使栈顶地址增大,即esp增大。栈保存了函数调用所需要的维护信息,这被称为堆栈帧(Stack Frame)或活动记录(Active Record),其包括如下内容:函数的返回地址和参数临时变量:包括函数的非静态局部变...
MySQL命令学习笔记(八) 1 安全管理1.1 访问控制MySQL服务器的安全基础是: 用户应该对他们需要的数据具有适当的访问权,既不能多也不能少1.2 管理用户MySQL用户账号和信息存储在名为mysql的MySQL数据库中。获得所有用户账号列表时,可使用以下代码:USE mysql;SELECT user FROM user;结果如下:这里只有root一个账户。接下来开始创建账户。1.2.1 创建用...
MySQL命令学习笔记(七) 1 使用游标1.1 游标游标(cursor)是一个存储在MySQL服务器上的数据库查询,它不是一条SELECT语句,而是被该语句检索出来的结果集。在存储了游标之后,应用程序可以根据需要滚动或浏览其中的数据。游标主要用于交互式应用,其中用户需要滚动屏幕上的数据,并对数据进行浏览或做出更改。MySQL游标只能用于存储过程(和函数)。1.2 使用游标使用游标涉及几个明确的步骤:在能够使用游...
MySQL命令学习笔记(六) 1 创建和操作表1.1 创建表 MySQL不仅用于表数据操作,而且还可以用来执行数据库和表的所有操作,包括表本身的创建和处理。创建表的两种方法:使用具有交互式创建和管理表的工具表也可以直接用MySQL语句操作1.1.1 表创建基础为利用CREATE TABLE创建表,必须给出下列信息:新表的名字,在关键字CREATE TABLE之后给出表列的名字和定义,用逗号分隔示例如...
MySQL命令学习笔记(五) 1 插入数据1.1 数据插入数据插入的方式有:插入完整的行;插入行的一部分;插入多行;插入某些查询的结果。1.2 数据插入将数据插入表中最简单的方法是使用基本的INSERT语法,其要求指定表名和被插入到新行中的值。示例命令如下:INSERT INTO table1 VALUES('TN8',8,'14723580','x',9, 8.88, '2019-05-21');结果如下:...
MySQL命令学习笔记(四) 一、组合查询有两种基本情况,其中需要使用组合查询:在单个查询中从不同的表返回类似结构的数据;对单个表执行多个查询,按单个查询返回数据1 创建组合查询可用UNION操作符来组合数条SQL查询。利用UNION,可给出多条SELECT语句,将它们的结果组合成单个结果集。1.1 使用UNION创建UNION涉及编写多条SELECT语句。使用示例如下:SELECT id,name FRO...
位运算总结 文章目录位运算基础1 技巧一:用于消去x的最后一位的11.1 应用一:用$O(1)$时间复杂度检测整数n是否是2的幂次1.2 应用二:计算在一个32位的整数的二进制表示中有多少个11.3 应用三:将整数A转换为B,需要改变多少个bit位2 技巧二:使用二进制进行子集枚举2.1 应用一:给定一个含不同整数的集合,返回其所有的子集3 不用任何比较判断找出两个数较大的数4 只用位运算不用算术运算实现整数...
TCP三次握手与四次挥手过程分析(理论+实践) 1、 前言 TCP协议(Transmission Control Protocol,传输控制协议),为应用层提供可靠的、面向连接的和基于流(stream)的服务。TCP协议使用超时重传、数据确认等方式来确保数据包正确地发送至目的端,因此TCP服务是可靠的 下面利用tcpdump来观察和分析TCP连接的建立与关闭过程。首先介绍测试环境:开启两台Linux虚拟机,然后将网络均连接到同一局域网...
MySQL命令学习笔记(三) 一、创建计算字段1.1 计算字段字段(field) 基本上与列( column) 的意思相同,经常互换使用,不过数据库列一般称为列,而术语字段通常用在计算字段的连接上。1.2 拼接字段**拼接:**将值联接到一起构成单个值。在mysql的SELECT语句中,可使用Concat()函数来拼接两个列。多数DBMS使用+或||来实现拼接,mysql则使用Concat()函数来实现。示例如下:...
MySQL命令学习笔记(二) 一、过滤数据1.1 使用WHERE子句 在SELECT语句中,数据根据WHERE子句中指定的搜索条件进行过滤。WHERE子句在表名(FROM子句)之后给出,如下所示:SELECT id, home FROM table1 WHERE name = "TN6";**WHERE子句的位置:**在同时使用ORDER BY和WHERE子句时,应该让ORDER BY位于WHERE之后, 否则将会...
Raspberry pi使用笔记2 Raspberry pi使用笔记2一、树莓派上vi(vim)编辑器常用指令vi(vim)有3个模式:插入模式、命令模式、低行模式。插入模式:在此模式下可以输入字符,按ESC将回到命令模式。命令模式:可以移动光标、删除字符等。低行模式:可以保存文件、退出vi、设置vi、查找等功能(低行模式也可以看作是命令模式里的)。1 打开文件、保存、关闭文件(vi(vim)命令模式下使用)vi fi...
Raspberry pi使用笔记1 Raspberry Pi使用记录一、树莓派 Raspberry Pi 设置无线上网1、查看网卡状态是否正常把无线网卡插到树莓派上,输入命令ifconfig -a查看是否有wlan0的信息,如果有说明网卡状态正常,可以跳过第二步,直接配置无线网络。如果查不到wlan0的信息,则需要安装无线网卡的驱动。2、配置无线网络用编辑器vim打开interfaces文件sudo vim /etc/n...
Opencv Mat矩阵操作 Opencv Mat矩阵操作1.生成矩阵:Mat image(240, 320, CV8UC3);第一个参数是rows,该矩阵的行数;第二个参数是cols,该矩阵的列数;第三个参数是该矩阵元素的类型。这句话表示创建一个大小为240×320的矩阵,里面的元素为8位unsigned型,通道数(channel)有3个。image.create(480, 640, CV8UC3);分配(或重...
MySQL命令学习笔记(一) MySQL命令学习笔记文章目录MySQL命令学习笔记1 使用数据库1.1 连接数据库2 检索数据2.1 SELECT语句2.2 检索多个列2.3 检索所有列2.4 检索不同的行2.5 限制结果2.6 使用完全限定的表名3 排序检索数据3.1 排序数据3.2 按多个列排序3.3 指定排序方向1 使用数据库1.1 连接数据库 为连接到mysql,需要以下信息:主机名(计...
Windows下Mysql和Navicat的安装及使用 Windows下Mysql和Navicat的安装及使用一 Mysql安装说明1 安装包下载去MySQL官网下载※※百度云下载链接※※,提取码:6hdm2 解压 这里使用的是非安装版MySQL,安装操作简单,直接解压就行。将下载好的 zip 包,解压到自己指定的目录即可,这里我解压到了D盘下面:D:\Program Files\mysql-5.7.23-winx64,或者直接先解...
C++字节对齐 C和C++字节对齐文章目录C和C++字节对齐1. 什么是字节对齐2. 对齐的原因和作用3. 对齐准则4. 结果分析5. 字节对齐设置1. 什么是字节对齐 现代计算机中,内存空间按照字节划分,理论上可以从任何起始地址访问任意类型的变量。但实际中在访问特定类型变量时经常在特定的内存地址访问,这就需要各种类型数据按照一定的规则在空间上排列,而不是顺序一个接一个地存放,这就是对齐。2. 对齐的原...