自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

wk_bjut_edu_cn的博客

fire in the hole!

  • 博客(164)
  • 资源 (2)
  • 收藏
  • 关注

原创 计算机网络知识点总结

目录一、TCP和UDP的区别二、OSI七层网络模型三、TCP/IP协议五层协议模型四、五个术语五、IP协议相关技术六、TCP七、TCP的流量控制以及拥塞控制八、TCP协议如何来保证传输的可靠性九、计算机网络中的网关和网桥十、本机ip和127.0.0.1的区别十一、常见的基于TCP/UDP的应用层协议十二、连接计算机与计算机之间的一些硬件设备十三、...

2019-11-23 15:51:19 3489 2

原创 链表系列

目录剑指Offer(6)--从尾到头打印链表剑指Offer(22)--链表中倒数第k个节点剑指Offer(24)--反转链表剑指Offer(25)--合并两个排序的链表剑指Offer(35)--复杂链表的复制剑指Offer(23)--链表中环的入口节点剑指Offer(52)--两个链表的第一个公共节点剑指Offer(18)--删除有序链表中重复的节点剑指...

2018-10-31 20:12:55 319 1

原创 TCP11种状态

TCP11种状态图CLOSED:初始状态,表示TCP连接是“关闭着的”或“未打开的”。LISTEN:表示服务器端的某个SOCKET处于监听状态,可以接受客户端的连接。SYN_RCVD:表示服务器接收到了来自客户端请求连接的SYN报文。在正常情况下,这个状态是服务器端的SOCKET在建立TCP连接时的三次握手会话过程中的一个中间状态,很短暂,基本上用netstat很难看到这种状态...

2018-09-03 10:48:08 18308 1

原创 makefile

一、概述1、make:是一个非常重要的编译命令,本质上它是一个程序。利用make工具,可以将大型的开发项目分解成为多个更易于管理的模块,对于一个包括几百个源文件的应用程序,使用make和makefile工具就可以简洁明快地理顺各个源文件之间纷繁复杂的相互关系。而且如此多的源文件,如果每次都要键入gcc命令进行编译的话,那对程序员来说简直就是一场灾难。而make工具则可自动完成编译工作,并且可以...

2020-02-28 13:40:40 244

原创 FTP简介

什么是FTP?FTP 是File Transfer Protocol(文件传输协议)的英文简称,而中文简称为“文传协议”。用于Internet上的控制文件的双向传输。同时,它也是一个应用程序(Application)。基于不同的操作系统有不同的FTP应用程序,而所有这些应用程序都遵守同一种协议以传输文件。在FTP的使用当中,用户经常遇到两个概念:"下载"(Download)和"上传"(Uplo...

2019-09-27 16:19:28 1388

原创 链表、队列、图、B树

一、链表循环队列的实现#include<iostream>#include <string>using namespace std; template <typename T>class Myloopqueue {private: T *queue;//存储用的数组 int capacity;//存放个数 int head;//hea...

2019-08-26 10:54:01 269

原创 dfs系列

组合总和给定一个无重复元素的数组candidates和一个目标数target,找出candidates中所有可以使数字和为target的组合。candidates中的数字可以无限制重复被选取。说明:所有数字(包括target)都是正整数。解集不能包含重复的组合。示例1:输入: candidates = [2,3,6,7], target = 7,所...

2019-06-19 18:42:22 269

原创 Git管理

一、Git安装去官网下载git 选择对应系统下载 https://git-scm.com/download,下载后安装默认next即可(此工具为命令行的安装) 安装好后在git bash里配置用户信息,配置用户信息如下图所示 git config --list里查看用户名邮箱是否配置成功 SourceTreeSourceTree 是 Windows 和Mac OS X 下...

2019-06-06 09:16:02 287

原创 关于基础类型转换

int转为short类型时产生的截断#include<iostream>using namespace std;int main(){ int a = 65533; short b = a; unsigned short c = a; cout << b << endl; cout << c << endl; sy...

2019-06-03 21:17:49 324

转载 pmon中x86emu对vga初始化浅析

本文主要简要描述下pmon中x86emu对vga初始化的步骤1。主要思想:x86emu 实际上可以看作是执行x86指令的一台虚拟机,对其介绍分为三个部分,内存空间映射,模拟中断机制,和指令执行模拟三个方面。2。内存空间映射x86emu中寻址空间空间默认是0~100000大小,映射关系如下:0~0xa0000 此空间访问...

2019-05-26 11:06:53 832

原创 网络常用测试工具

目录一、netstat二、ping三、traceroute四、telnet命令五、route命令六、ifconfig命令七、tcpdump--抓包命令八、nc命令九、curl命令十、dig命令十一、Linux如何查看端口使用情况一、netstat命令功能:它可以用来查询系统上的网络套接字连接情况,包括tcp,udp以及Unix套接字;...

2019-04-25 11:28:25 22238

原创 valgrind的简单使用

valgrind是什么?Valgrind是一套Linux下,开放源代码的仿真调试工具的集合。Valgrind由内核以及基于内核的其他调试工具组成。内核类似于一个框架,它模拟了一个CPU环境,并提供服务给其他工具;而其他工具则类似于插件 ,利用内核提供的服务完成各种特定的内存调试任务。Valgrind包括的一些工具Memcheck。这是valgrind应用最广泛的工具,一个重量级的内存检...

2019-04-24 14:27:56 203

原创 日常安装

一、解决虚拟机和物理机之间不能复制粘贴文件https://jingyan.baidu.com/article/6079ad0e9a3c8528fe86db50.html二、vs新建项目时出现“异常来自HRESULT: "问题解决方法https://zhidao.baidu.com/question/435033999.html三、安装vs2015后没有C++和C语言怎么办htt...

2019-03-31 16:12:37 221

原创 递归、循环、位运算

目录剑指Offer(10)--斐波那契数列(青蛙跳台阶)剑指Offer(11)--旋转数组的最小数字剑指Offer(12)--矩阵中的路径剑指Offer(13)--机器人的运动范围剑指Offer(14)--剪绳子剑指Offer(15)--二进制中1的个数剑指Offer(17)--打印从1到最大的n位数剑指Offer(47)--礼物的最大价值剑指Offer...

2019-03-26 14:45:18 268

原创 杂乱算法题

目录剑指Offer(15)--二进制中1的个数剑指Offer(41)--数据流中的中位数剑指Offer(49)--丑数剑指Offer(65)--不用加减乘除做加法剑指Offer(15)--二进制中1的个数题目:请实现一个函数,输入一个整数,输出该数二进制表示中1的个数。#include<iostream>using namespace std;/...

2019-03-23 17:49:49 225

转载 装饰模式

装饰模式:动态地给一个对象添加一些额外的职责。就增加功能来说,装饰模式相比生成子类更为灵活。有时我们希望给某个对象而不是整个类添加一些功能。比如有一个手机,允许你为手机添加特性,比如增加挂件、屏幕贴膜等。一种灵活的设计方式是,将手机嵌入到另一对象中,由这个对象完成特性的添加,我们称这个嵌入的对象为装饰。这个装饰与它所装饰的组件接口一致,因此它对使用该组件的客户透明。下面给出装饰模式的UML图。...

2019-03-22 21:28:55 202

原创

目录树的先序、中序、后序、层次遍历代码求二叉树的宽度输出二叉树每一层的最右节点二叉排序树转换成有序双向链表二叉搜索树的查找、插入、删除二叉树的最大距离(即相距最远的两个叶子节点)赫夫曼编码赫夫曼树的一个重要应用是赫夫曼编码。这里的编码是将要传送的文字转换为二进制的字符串(由0和1组成的字符串)。根据给定字符串权值求赫夫曼编码的过程,实际上就是根据给定权值构...

2019-03-03 21:22:28 265

原创 哈希表

目录哈希表(散列表)1.哈希表定义2.哈希表的关键3.最常见的哈希函数(散列函数)构造方法直接定址法除留余数法数字分析法平方取中法3.哈希冲突的解决方法开放定址法链地址法4.哈希表的优缺点5.STL中哈希表的奇特设计6.Hash的应用7.Hash和红黑树的选择哈希表(散列表)1.哈希表定义 哈...

2019-01-21 16:59:24 678

原创 常用命令总结

目录一、磁盘与目录的容量df,du二、改变文件属性和权限三、文件内容查阅四、ulimit命令五、Linux下4个查找命令which、whereis、locate、find六、三剑客命令(grep,sed,awk)七、文件隐藏属性八、man的九个章节九、file命令十、vim十一、其它命令十二、sort命令十三、strace、pstack、p...

2019-01-18 11:15:42 1009

原创 主动模式和被动模式

一、FTP两种工作模式主要是针对数据连接而言的,控制连接的建立总是由客户端向服务器端发起。而数据连接通道的建立则不同,既可以是服务器端向客户端发起连接建立数据连接通道,这种模式称为主动模式。也可以是客户端向服务器端发起连接建立数据连接通道,这种模式称为被动模式。详细介绍请看FTP简介二、nobody进程为什么要用两个进程为一个客户端服务?当一个客户端连接过来的时候,如果是wan...

2019-01-17 10:39:00 1659

原创 最大连接数与每ip连接数的限制

一、最大连接数的限制概念这是指服务器可以同时接收的最大连接数,防止服务器压力过大而在应用层进行的限制。实现总体思路:将当前连接数保存于变量num_clients变量中,然后与配置项numble_max_clients进行比较,如果超过了就不让登录,当一个客户登录的时候num_clents加1,当一个客户退出的时候,num_clients减1。1.一旦服务器端与客户端经过三次握手...

2019-01-16 21:22:30 7162

原创 下载和上传

一、预备知识1.lseek函数在程序中作用是断点续载或断电上传时偏移文件指针lseek函数介绍2.fcntl函数在此程序中的作用是对文件加读写锁fcntl函数介绍二、下载的实现1.不论是上传还是下载,首先都要进行数据连接字的创建将创建好的数据连接套接字保存到data_fd中//数据连接通道的创建//创建数据连接,获取数据连接所对应的套接字,有可能是主动模式也可能...

2019-01-16 15:37:08 401

原创 如何实现限制上传或下载速度

预备知识1.gettimeofday函数作用:在C语言中可以使用函数gettimeofday()函数来得到时间。它的精度可以达到微妙。函数原型:#include&lt;sys/time.h&gt;int gettimeofday(struct  timeval*tv,struct  timezone *tz )返回值:函数执行成功后返回0,失败后返回-1,错误代码存...

2019-01-16 14:43:33 7562 5

原创 ftp中的空闲断开

 为什么要空闲断开?对于服务端而言,由于连接数和内存的限制,我们不可能对一个长时间处于不活跃的客户端,单独维护一个fd,一个进程/线程始终为其服务,fd单个进程上限默认值为1024,由于内存的限制,也不能无限制的分配出进程或者线程为其服务,这个时候我们就需要断开在规定时间内没有任何动作的客户端,腾出内存为其他客户端服务。控制连接空闲断开实现1.首先是安装信号SIGALRM并启动定时闹钟...

2019-01-16 14:04:20 1341

原创 abor的实现源码

带外数据什么是带外数据?带外数据是什么意思?许多传输层都支持带外数据,有时候也称为快速数据。之所以有带外数据的概念,是因为有时候在一个网络连接的终端想“快速”的告诉网络另一边的终端一些信息。这个“快速”的意思是我们的“提示”信息会在正常的网络数据(有时候称为带内数据In-Band data)之前到达网络另一边的终端.这说明,带外数据拥有比一般数据高的优先级。但是不要以为带外数据是通过两条套...

2019-01-16 12:51:34 2882

原创 HTTP相关知识点

目录一、HTTP协议的特点二、一次完整的HTTP请求所经历的7个步骤三、HTTP请求报文与响应报文格式四、常见的HTTP相应状态码五、常见HTTP首部字段六、HTTP请求方法七、GET和POST的区别八、Cookie和Session的区别及使用九、HTTP和HTTPS十、HTTP1.0 HTTP 1.1 HTTP 2.0主要区别十一、HTTP中的缓存机制...

2018-12-27 15:09:33 1935 2

原创 Linux系统管理命令

目录一、进程管理命令1.查看系统中所有进程2.查看系统健康状态分析IO瓶颈、CPU瓶颈二、系统资源查看1.监控系统资源2.开机时内核检测信息3.查看内存使用状态4.查看CPU信息5.显式系统的启动时间和平均负载6.查看系统与内核相关信息7.判断当前系统的位数8.查询当前Linux系统的发行版本9.列出进程打开或使用的文件信息10.Li...

2018-12-26 15:40:45 333

原创 牛客算法进阶(一)

一、窗口应用生成窗口最大值数组给出一个整形数组,例如arr = {5,4,3,5,6,7,6},窗口大小为w=3,窗口每次向右移动一位,输出每个窗口中最大值组成的数组。[5,4,3,]5,6,7,6 窗口最大值为55,[4,3,5,]6,7,6 窗口最大值为55,4,[3,5,6,]7,6 窗口最大值为65,4,3,[5,6,7,]6 窗口最大值为75,4,3,5,[6...

2018-12-18 20:47:08 3104

原创 关于C++模板分离式编译

以前一直没注意这个问题,下面进行总结分离编译模式一个项目如果有多个源文件组成,每个源文件单独编译,形成目标文件。最后通过链接器将所有的目标文件链接起来,形成一个可执行的文件。这个过程就叫做分离编译。分离式编译的优势如果工程巨大(比如linux内核源码) , 当你只修改了其中一个文件的时候,只要编译改动过的就可以了,不需要全部重新编译。模板不能分离编译有一个项目,其中函数声明...

2018-12-16 17:10:36 544

原创 从暴力递归到动态规划

动态规划什么是动态规划方法?1.其本质是利用申请的空间来记录每一个暴力搜索的结果,下次要用结果的时候就可以直接使用,而不需要在进行重复的递归过程。2.动态规划规定每一种递归状态的计算顺序,依次进行计算。1.动态规划算法是从暴力搜索算法优化过来的,如果我们不清楚暴力搜索的过程,就难以理解动态规划的实现,当我们了解了动态规划算法的基本原理的文字概述,实现条件之后,这时可能并不是太理...

2018-12-09 16:01:31 568 1

原创 string涉及的一些转换

string、char *、char[]之间的互相转换一、string转换为char *标准库的string类提供了3个成员函数来从一个string得到c类型的字符数组:c_str()、data()、copy(p,n)。1. c_str()生成一个const char*指针,指向以空字符终止的数组。这个数组的数据是临时的,当有一个改变这些数据的成员函数被调用后,其中的数据就会失...

2018-12-06 10:18:40 182 1

原创 C++实现缓存算法LRU和LFU

LRU的实现运用你所掌握的数据结构,设计和实现一个LRU (最近最少使用) 缓存机制。它应该支持以下操作: 获取数据get和 写入数据put。获取数据get(key)- 如果密钥 (key) 存在于缓存中,则获取密钥的值(总是正数),否则返回 -1。写入数据put(key, value)- 如果密钥不存在,则写入其数据值。当缓存容量达到上限时,它应该在写入新数据之前删除...

2018-12-05 17:12:01 1320

原创 C++11中一些常见的特性

C++11标准由国际标准化组织(ISO)和国际电工委员会(IEC)旗下的C++标准委员会(ISO/IEC JTC1/SC22/WG21)于2011年8月12日公布[2],并于2011年9月出版。2012年2月28日的国际标准草案(N3376)是最接近于C++11标准的草案(仅编辑上的修正)。此次标准为C++98发布后13年来第一次重大修正。一、auto类型说明符auto类型说明符能够...

2018-11-16 18:21:10 192

原创 常见排序算法汇总(C++实现)

目录插入排序冒泡排序快速排序(普通版AND改进版)简单选择排序堆排序二路归并排序希尔排序基数排序排序算法分析Hash表的实现(拉链法)单链表排序快速排序二分查找外部归并排序法插入排序#include<iostream>using namespace std;/*插入排序的细节讲解与复杂度分析时间复杂度O(N ^...

2018-11-08 21:23:31 378

原创 栈、队列系列

目录剑指Offer(9)--用两个栈实现队列(用两个队列实现栈)剑指Offer(30)--包含min函数的栈剑指Offer(31)--栈的压入、弹出序列剑指Offer(59)--队列的最大值用数据结构模拟浏览器前进后退的操作剑指Offer(9)--用两个栈实现队列(用两个队列实现栈)思路:当需要输出的时候,如果pop栈中有数据就直接输出栈顶元素,如果没...

2018-11-05 18:42:54 214

原创 字符串系列

目录剑指Offer(5)--替换空格剑指Offer(19)--正则表达式匹配剑指Offer(20)--表示数值的字符串剑指Offer(38)--字符串的排列打印一个字符串的全部子序列,包括空字符串剑指Offer(46)--把数字翻译成字符串剑指Offer(48)--最长不重复字符的子字符串剑指Offer(58)--翻转字符串和左旋转字符串剑指O...

2018-11-05 14:20:45 272 1

原创 STL总结

容器容器的定义在数据存储上,有一种对象类型,它可以持有其它对象或指向其它对像的指针,这种对象类型就叫做容器。很简单,容器就是保存其它对象的对象,当然这是一个朴素的理解,这种“对象”还包含了一系列处理“其它对象”的方法。容器的种类1、顺序容器:是一种各元素之间有顺序关系的线性表,是一种线性结构的可序群集。顺序性容器中的每个元素均有固定的位置,除非用删除或插入的操作改变这个位置。顺...

2018-11-04 21:46:18 287 1

原创 hashtable源码解读

hashtable概述Hash_table可提供对任何有名项(named item)的存取、删除和查询操作。由于操作对象是有名项,所以hash_table可被视为是一种字典结构(dictionary)。Hash_table使用名为hash faction的散列函数来定义有名项与存储地址之间的映射关系。使用hash faction会带来一个问题:不同的有名项可能被映射到相同的地址,这便是所谓...

2018-11-04 20:25:31 220

原创 deque源码解读

deque概述vector是单向开口的连续线性空间,deque则是一种双向开口的连续线性空间。所谓双向开口,意思是可以在头尾两端分别做元素的安插和删除动作。vector当然也可以在头尾两端做动作,但是其头部动作效率奇差,无法被接受。deque和vector的最大差异,一在于deque允许在常数时间内对头尾端进行元素的安插或移除动作。二在于deque没有所有容量概念,因为它是动态地以分段连...

2018-11-04 15:01:19 1035

原创 RB-tree源码

红黑树红黑树的四个性质:(1)每个节点要么红要么黑。(2)根节点黑色。(3)每个叶子节点是黑色。【叶子节点指的是NIL或者NULL的叶子节点】。(4)如果一个节点是红色的,那么它的叶子节点必须是黑色的。(5)任一节点至NULL(树尾端)的任何路径,所包含的黑节点数必须相同。这些性质强制了红黑树的关键性质: 从根到叶子的最长的可能路径不多于最短的可能路径的两倍长。主要原因...

2018-11-03 17:49:45 344

陈硕讲解网络编程实战

陈硕讲解的一些关于Linux多线程编程的视频,关于视频需要结合muduo源码进行观看

2018-06-23

强制访问控制小程序

用MFC写的一个强制访问控制的小程序,需要自己创建txt文档

2018-03-16

空空如也

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

TA关注的人

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