自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

一条二哈

在读学生,坚持学习

  • 博客(182)
  • 收藏
  • 关注

原创 Mysql字符集转换原理剖析及乱码原因

一、mysql字符集和校对字符集是指一种从二进制编码到某类字符符号的映射。校对是指一组用于某个字符集的排序规则。在Mysql4.1和之后的版本中,每一类编码字符都有其对应的字符集和校对规则。1. Mysql如何使用字符集Mysql服务器有默认的字符集和校对规则,每个数据库也有自己的默认值,每个表也有自己的默认值。这是一个逐层继承的默认设置,最终最靠底层的默认设置将影响你创建的对象。这些默认值,至上而下的告诉MYSQL应该使用什么字符集来存储某个列。在这个“阶梯”的每一层,你都可以指定一个特定的字符集

2020-12-27 21:27:48 662

原创 curl命令及其API 的使用

1. curl 命令的使用curl 不到任何参数的时候,就是一般的 get 请求。curl 的参数很多,我只列举常用的。参数 -d-d:用于发送 POST 请求的数据体。$ curl -d'login=emma&password=123'-X POST https://google.com/login# 或者$ curl -d 'login=emma' -d 'password=123' -X POST https://google.com/login使用 -d 参数之后,HTTP 请求会

2020-11-01 20:40:14 3556 1

原创 mysqldump 工具的使用

mysqldump 工具的使用mysqldump 是数据库导出数据中使用非常频繁的一个工具。操作数据库一定要学会这个工具。不带参数的 mysqldump 导出,导出文本内容大概为:数据库创建判断语句 -> 删除表 -> 创建表 -> 锁表 -> 禁用索引 -> 插入数据 -> 启用索引 -> 解锁表。如果是大量的数据需要导出,锁表是一件非常危险的事情,尤其是在线上生产环境,锁表可能会导致出故障。导出所有数据库该命令会导出包括系统数据库在内的所有数据库m

2020-11-01 20:37:29 371

原创 序列化和反序列化(JSON、protobuf)

1. 数据的序列化和反序列化序列化:将数据结构或者对象(可以认为内存空间有布置的一段内存)转换生成二进制数据的过程反序列化:将上一步生成的二进制数据转换成数据结构或者对象的过程我最先接触到的序列化和反序列化是在学习 linux 网络编程的时候。举如下例子:struct Book{ int Id; char BookName[10]; char Author[10]; float Version;};//定义一个图书对象Book book;book.Id = 123;s

2020-10-23 11:38:02 2516

原创 git学习记录

基础命令git add 注意:可反复多次使用,添加多个文件git diff 查看修改变动了什么,工作区和版本库中的区别git status 随时查看仓库、工作区当前的状态git log 显示从近到最远的提交日志。如果嫌信息太多,加上 --pretty=oneline,显示版本号和提交日志。版本回退、工作区、暂存区HEAD 指向的版本就是当前版本,因此,GIT 允许我们在版本的历史之间穿梭,使用 git reset --hard commit_id穿梭前,用 git log 可以查看提

2020-10-17 20:47:30 103

原创 在linux中装多个mysql 服务(亲测有效)

在linux 中装多个mysql服务在linux中装多个mysql服务,采用端口号不同来区分。在linux下创建目录 /path/myenv使用源码安装,源码下载:https://downloads.mysql.com/archives/community/ 选择合适的版本下载到linux 目录 /tmp 下。然后 tar -xzvf mysql5.xx.tar.gz -C /path/myenv ,解压到新创建的目录进入到/path/myenv目录,对mysql5.xxx 重命名为mysql

2020-08-10 23:13:57 923

原创 linux源码安装mysql

linux 源码安装mysqlmysql各种版本下载网址:https://downloads.mysql.com/archives/community/选择自己需要的mysql版本,并且一定要选对linux版本号,看清楚是64位还是32位。将安装包解压到指定目录下,先创建目录mkdir -p /path/myenvtar -xzvf mysql-5.6.28-linux-glibc2.5-x86_64.tar.gz -C /path/myenv/去指定目录下,方便以后操作修改mysql文件

2020-08-08 20:44:01 332

原创 mysql的主从同步配置

mysql的主从同步配置mysql的主从同步,当主机和从机建立同步关系之后,主机的数据库所做出的修改会记录在binlog日志中,这个日志中存的其实是操作数据库的命令,并且带有编号。于是主机与从机之间就通过日志中带有编号的操作数据库的信息来同步主机与从机的数据库数据。在做主从同步的时候,最好保证主机与从机之间数据库版本是一致的。因为在做mysql主从同步主要需要mysqlbinlog这个mysql组件去解析主机产生的binlog日志,而 mysql5.5版本(包含5.5)以下的mysqlbinlog这个

2020-08-08 15:30:52 170

原创 go语言语法自我总结

GOPATH: 就是 golang 工作目录:我们的所有项目的源码都这个目录下。浮点数=符号位+指数位+尾数位Golang 中没有专门的字符类型,如果要存储单个 字符(字母),一般使用 byte  来保存。对于传统的字符串是由字符组成的,而 Go  的字符串不同,它是由 字节组成的。Go 语 言 的 字 符 使 用 UTF-8 编 码可以直接给某个变量赋一个数...

2020-02-06 23:08:08 233

原创 go语言学习之切片、字典、defer语句

切片var sliceName [ ]dataType,创建切片时,不能指定切片的长度slice = array[start : end],左闭右开var slice = make([ ]int,5,10),元素个数为5,初值为0,并预留10个元素的存储空间切片的增加可以使用 append 函数切片的复制可以使用 copy 函数字典var map1 map[ string ...

2020-01-31 18:18:23 181

原创 go语言学习---数据类型、运算符、表达式

定义常量const PI float = 3.1415926定义变量var count intvar count int = 10count := 10var count = 10标识符与命名规则变量名必须以字母或者下划线开始必须使用英文字母、数字、下划线组成不能使用go关键字大小写敏感布尔型数据布尔型不接受其他数据类型赋值布尔类型不能进行强制...

2020-01-31 09:21:23 253

原创 python爬虫-- 爬取51job网招聘信息

项目概览在浏览器上访问51job 官方网站,并在搜索框输入关键词“Python”,地点选在“西安”,单击”搜索“按钮进入搜索页在搜索页中,所有符合条件的职位信息以列表的形式排序设有分页显示。每条职位信息是一个URL 地址,通过URL 地址可以进入该职位的详情页。职位详情页也是数据爬取的页面,爬取的数据信息有:职位名称、企业名称、待遇、福利以及职位要求等等。项目框架项目的开发工具选择...

2020-01-20 19:02:19 2299 6

原创 python爬虫--【百度知道】自动答题

做的第一个python爬虫类项目,刚开始学,如有错误,指出无妨百度知道自动答题功能访问百度知道,我们会看到有很多新的提问。其实很多提问已经有人做了解释或者网上可以找到现成的答案。因此,一方面,满足那些提问题的人的需要,另一方面,自己使用python练练手。项目的主要功能就是:对于百度知道里面的新问题,程序会在网页上去搜索,寻找最佳答案。如果有,则回答他;如果没有,那就跳过。实...

2020-01-16 20:26:11 6268 2

原创 基于Lua语言的wireshark插件编写

一、两种语言开发插件的对比想要开发wireshark插件,我们可以使用C语言也可以使用Lua语言。如下图,是使用两种语言开发插件的对比。如上图,我最后选择使用Lua语言进行开发wireshark插件。二、插件功能目前我有一个任务,需要解析RTP包的payload,这个payload前三个字节是自定义的字节,后面的才是H264的数据、或者OPUS的数据。因此我需要在RTP包的上层进行...

2019-12-12 21:43:20 3558

原创 lua脚本语言学习(一)

lua脚本语言学习单行注释:–多行注释:–[[ 多行注释 --]]标识符区分大小写在默认情况下,变量总是认为是全局的。全局变量不需要声明,给一个变量赋值后即创建了这个全局变量,访问一个没有初始化的全局变量也不会出错,只不过得到的结果是:nil。 如果你想删除一个全局变量,只需要将变量赋值为nil。 当且仅当一个变量不等于nil时,这个变量即存在。数据类型描述ni...

2019-11-28 15:59:02 247

原创 RTP协议&RTCP协议

RTP协议&RTCP协议一、RTP1、RTP的运行环境RTP用于在单播或多播网络中传送实时数据。它们典型的应用场合有如下几个。简单的多播音频会议。语音通信通过一个多播地址和一对端口来实现。一个用于音频数据(RTP),另一个用于控制包(RTCP)。音频和视频会议。如果在一次会议中同时使用了音频和视频会议,这两种媒体将分别在不同的RTP会话中传送,每一个会话使用不同的传输...

2019-11-27 20:46:23 648

原创 读平凡的世界

平凡的世界有感时至2019年10月一号,终于我在高铁上读完了《平凡的世界》,开始读大概也是在路上。习惯了路上看书。尤其是长途车上吧。大概断断续续的有大半年了吧。从刚开始在我脑海中的深刻印象,大概就是大革命时期的孙玉亭吧。有着坚定的意志,为了自己的革命事业奋斗。我看到了当年文化大革命期间无数的基层干部的心,他们同样的有一颗报国的心,身在这个职位,就想把这个职位上的事情做好,虽然说有的时候也是为了...

2019-10-02 00:03:41 1044

原创 单例模式不简单

单例模式单例模式,是一种类的设计模式,采用单例模式设计的类,只允许有一个实例。为什么要采用单例模式:1、有些对象在程序的整个声明周期中,为了保证数据的正确性,只允许有一个实例。2、节省资源3、满足“低耦合”的设计单例模式的实现:单例模式有两种实现方式:懒汉模式、饿汉模式#if 0 //懒汉模式#include<iostream>#include<mutex&g...

2019-08-16 12:29:25 174 1

原创 海量数据面试题

哈希切割给一个超过100G大小的log file, log中存着IP地址, 设计算法找到出现次数最多的IP地址? 如何找到top K的IP?如何直接用Linux系统命令实现?采用hash的方式,ip%m,将大文件分成 m 个小文件。对每个小文件,用hash表统计ip出现的次数。找出这个小文件出现次数最多的 ip在这m个ip中,比较得到出现次数最多的ip。如果是top k的话,就维护...

2019-08-16 10:06:06 232

原创 C++ STL常用算法总结

算法:问题的求解步骤,以有限的步骤,解决数学或逻辑中的问题。STL中的算法主要分为两大类:与数据结构相关算法(容器中的成员函数)和通用算法(与数据结构不相干)。STL中通用算法总共有70多个,主要包含:排序,查找,排列组合,数据移动,拷贝,删除,比较组合,运算等。今天我介绍我经常会用到的算法。accumulate 元素统计template <class InputItera...

2019-08-08 14:32:17 457

原创 HTTP服务器项目详解

HTTP 服务器项目整体学习完HTTP 这个应用层协议之后,心血来潮,在老师和学长的帮助下,更多的是在百度的帮助下,算是顺利的完成了项目吧。功能:收到 TCP/IP 协议栈发送过来的数据并对这些数据进行解析,得到有用的信息,然后对请求做出对应的响应。模拟实现了 HTTP 协议的一些功能,比如:GET、POST 方法。展示一下:比如:搭载一个贪吃蛇游戏的 HTML 网页。在展示一个:...

2019-07-25 21:22:44 1592

原创 socks5 代理服务器项目

那我整体的描述一下我的socks5 项目我的项目的功能通过VPS 服务器,搭载我的项目。可以实现访问各大网站。我的项目分为五个模块。1. Epoll 基类我的Epoll 基类模块干的事情,由于这个模块是为了我的transfer 模块和 socks 模块提供服务,因此我设置了可继承的函数,比如Start(),它是为了绑定我的套接字,并且创建我的 epoll 用来管理我的事件,同时将我的...

2019-07-21 20:42:23 1115

原创 基于boost库的搜索引擎项目

搜索引擎项目功能实现了一个基于boost 文档的搜索引擎,用户输入查询词,能够把和这个词相关的文档的网页都查找出来,类似于百度搜索。模块化介绍分为三大模块数据处理模块:对待搜索的网页进行预处理索引模块:根据数据处理模块的结果,构造出正排索引和倒排索引。搜索模块:根据用户输入的查询词,对索引进行查找,最终找出那些文档和这个词有关系。一:数据处理模块详解实...

2019-07-21 20:38:49 608

原创 C语言的MySQL接口详解

介绍一个MySQL 的关于C语言的接口mysql_character_set_name()const char* mysql_character_set_name(MYSQL* mysql)为当前连接返回默认的字符集返回值:默认的字符集mysql_close()void mysql_close(MYSQL* mysql)描述:关闭前面打开的连接,如果句柄是由 mysql_ini...

2019-06-24 11:42:17 8304 1

原创 关于 printf("%*.*s/n",m,n,ch) 的问题

对于 printf(%*.*s\n,m,m,ch); ,这种printf 函数的输出我第一次看的时候很奇怪。下面就来解释一下。加入有下面的代码#include<stdio.h>int main(){ char* ch = (char*)"123456789"; int m = 10,n = 2; printf("%*.*s\n",m,n,ch); printf("...

2019-06-23 16:33:02 1747

原创 #pragma 预处理指令详解

#pragma 预处理指令详解#pragma 指令对每个编译器给出了一个方法,在保持C和C++语言完全兼容的情况下,给出了主机或操作系统专有的特征。其格式一般是 #pragma para ,其中para 是参数。message 参数它能够在编译窗口中输出相应的信息,这对于源代码的控制是非常重要的。使用方法 #pragma message("消息文本")当编译器遇到这条指令时,就在...

2019-06-22 11:39:25 372

转载 NAT详细解读

转载自https://blog.csdn.net/gui951753/article/details/79593307大神写的太好了。。快前来膜拜NAT产生背景今天,无数快乐的互联网用户在尽情享受Internet带来的乐趣。他们浏览新闻,搜索资料,下载软件,广交新朋,分享信息,甚至于足不出户获取一切日用所需。企业利用互联网发布信息,传递资料和订单,提供技术支持,完成日常办公。然而,Inter...

2019-06-19 20:14:09 4233

原创 缓存

Web 缓存是可以自动保存常见文档副本的HTTP 设备。当Web 请求抵达缓存时,如果本地有“已缓存的”副本,就可以从本地存储设备而不是原始服务器中提取这个文档。使用缓存的优点:缓存减少了不必要的数据传输,节省了你的网络带宽缓存缓解了网络瓶颈的问题,不需要更多的带宽就能够更快的加载页面缓存降低了对原始服务器的要求。服务器可以更快地响应,避免过载的出现(瞬时拥塞)缓存降低了距离时延,因...

2019-06-17 17:20:55 123

原创 代理服务器

Web 代理服务器是网络的中间实体。代理位于客户端和服务器之间,在各端点之间来回传送HTTP 报文。HTTP 的代理服务器即是Web 服务器又是Web 客户端。HTTP 客户端会向代理发送请求报文,代理服务器必须像Web 服务器一样,正确的处理请求与连接,然后返回响应。同时,代理自身向服务器发送请求,这样,其行为就必须像正确的HTTP 客户端一样,要发送请求并接收响应。如果要创建自己的HTTP...

2019-06-17 10:25:23 3430 1

原创 计算机网络(HTTP、TCP)的连接管理

在浏览器上输入一个网址基本上会发生的事情,,简单的图来介绍HTTP要传送一条报文时,会以流的形式将报文数据的内容

2019-06-16 15:06:32 881

原创 Linux centos6 命令行配置网络连接

我自己的环境时 VMware14下,centos6.2,内核是2.6网络配置很关键,必须要保证每个网卡mac地址在所有编辑文件中的一致性,否则可能会导致无法正常通信。获取网卡 MAC 地址方法第一步:在上面选项中依次打开虚拟机 -> 设置,如图第二步:点开虚拟适配器,点击右侧高级配置环节第一步:拿到 MAC 地址后。执行vi /etc/udev/rules.d/70...

2019-06-14 21:39:26 3487

原创 VMware网络连接模式——桥接模式、NAT模式以及仅主机模式的介绍和区别

桥接模式当虚拟机系统的网络连接模式为桥接模式时,相当于主机系统和虚拟机系统之间连接了一个网桥,而网桥两端的网络都属于同一个网络,主机和虚拟机是处于同一网络中的对等主机。实例:在使用XShell 与Linux 的连接时需要使用桥接模式,例如虚拟机 Linux 系统的网络设置:与虚拟网卡VMware Virtual Ethernet Adapter for VMnet8之间用桥接模式。VM...

2019-06-14 20:59:02 204

原创 HTTP报文

报文的组成部分每条报文都包含

2019-06-13 19:02:05 172

原创 URL与资源

URL的组成第一部分:URL方案,方案可以告知Web 客户端怎么访问资源第二部分:服务器的位置,这部分告知Web 客户端资源位于何处。第三部分:资源路径,说明了请求的是服务器上的那个特定的本地资源。- URL可以通过HTTP之外的其他协议来访问资源。他们可以只想因特网上的任意资源。URL提供了一种统一的资源命名方式。“方案:// 服务器位置/路径” 结构URL语法大多数URL ...

2019-06-13 13:17:10 1288

原创 HTTP简单概述

媒体类型因特网上的数千种不同的数据类型。HTTP仔细的给每种要通过Web 传输的对象都打上了名为MIME类型的数据格式标签。最初设计MIME(Multipurpose Internet Mail Extension,多用途因特网邮件扩展)是为了解决在不同的电子邮件系统之间搬移报文时存在的问题。HTTP采纳了它,用它来标记多媒体内容。这个MIME类型说白了就是Content-type字段。MI...

2019-06-12 21:08:22 221

原创 防火墙介绍

目录防火墙概述防火墙产生背景防火墙定义防火墙作用防火墙的局限性防火墙的局限性防火墙的分类按形态分类按保护对象分类基于路由防火墙的特点基于路由防火墙的缺点:基于操作系统防火墙的特点通用操作系统防火墙的缺点安全操作系统防火墙的特点防火墙的相关术语防火墙的体系结构防火墙主要技术防火墙核心技术防火墙的基本功能防火墙的其他功...

2019-06-12 15:28:34 4853

原创 神奇的int i = -2147483648,为什么在VS中编译错误?

我们先从二进制机器标识码说起引用别人的一段话“这得从二进制的原码说起:如果以最高位为符号位,二进制原码最大为0111111111111111=215-1=32767 最小为1111111111111111=-(215-1)=-32767此时0有两种表示方法,即正0和负0:0000000000000000=1000000000000000=0所以,二进制原码表示时,范围是-32767~...

2019-06-10 00:29:48 2948 1

原创 设计模式的六大原则

设计模式的六大原则1、开闭原则(Open Close Principle)开闭原则的意思是:对扩展开放,对修改关闭。在程序需要进行拓展的时候,不能去修改原有的代码,实现一个热插拔的效果。简言之,是为了使程序的扩展性好,易于维护和升级。想要达到这样的效果,我们需要使用接口和抽象类,后面的具体设计中我们会提到这点。2、里氏代换原则(Liskov Substitution Principle...

2019-06-09 18:05:59 102

原创 C++11新标准

新类型新增long long 和unsigned long long ,用来支持64(或更宽)的整形;新增 char16_t 和char_32_t ,用来支持16位和32位的字符表示;统一的初始化C++11扩大了大括号括起的列表的使用范围,使其可以用于所有内置类型和用户定义的类型(即类对象)。使用初始化列表时,可以不添加等号(=)。初始化列表语法可以防止缩窄,即禁止将数值赋给无...

2019-06-09 17:52:36 4815

原创 c++输入、输出和文件

首先介绍第一个概念,缓冲区。使用缓冲区可以高效的处理输入与输出。缓冲区是用作中介的内存块,它是将信息从设备传输到程序或者从程序传输给设备的临时存储工具。关于 put 和writecout.put('W'); cout.put(65);cout.put(65.5); //会将65.5转换成65cout.write();basic_ostream<charT,traits&g...

2019-06-06 15:40:11 188

空空如也

空空如也

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

TA关注的人

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