自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(110)
  • 收藏
  • 关注

原创 xshell中的主机怎么填

1.首先打开虚拟机,登录到操作系统,鼠标右键打开终端,输入命令:ifconfig,注意查看 eth0 这一栏中的inet 即为虚拟机的ip地址2.打开xshell软件—>新建—>连接–>名称,主机填你的虚拟机ip地址再用户身份验证—>一次输入你在linux中的账户密码—>连接即可...

2020-05-21 14:56:07 7885 1

原创 poll、epoll(流程、接口、优缺点、代码)

poll:操作流程:1.定义监控的描述符时间结构体数组,将需要监控的描述符以及事件标识信息,添加到数组的各个节点中。2.发起调用开始监控,将描述符事件结构体数组,拷贝到内核中进行轮询遍历判断。若有就绪/等待超时则调用返回,并且在每个描述符对应的事件结构体中,标识当前就绪的事件。3.进程轮询遍历数组,判断数组中的每个节点中的就绪事件是哪个事件,决定是否就绪了以及如何对描述符进行操作。接口认识:int poll(struct pollfd *array_fds, nfds_t nfds, int

2020-05-17 09:42:05 769

原创 四种典型IO模型、阻塞非阻塞、同步异步、多路转接IO模型(select)

高级IO高级IO:四种典型的IO模型+多路转接模型典型的几种IO模型中各自的优缺点,让我们在以后进行IO的时候能够根据场景选择合适的IO模型。四种IO模型:阻塞IO/非阻塞IO/信号驱动IO/异步IOIO的过程:发起IO调用,等待I条件就绪,然后将数据拷贝到缓冲区中进行处理。五种典型的IO模型阻塞IO:为了完成IO,发起调用。若当前不具备IO条件,则一直等待。流程非常简单,清晰明了。一个IO完毕后才能进行下一个。对于资源没有充分利用,大部分的时间都在等待。非阻塞IO:为了完成IO,发

2020-05-16 09:27:34 343

原创 域名解析、URL回车、相邻设备、ARP协议、MTU、DNS/ICMP/NAT/NAPT、代理

链路层链路层:负责相邻设备之间的数据传输。相邻设备:连接起来的两个设备就是相邻设备。一个路由器有可能连接了很多设备,也就是说一个设备可能有很多相邻设备。那么如何识别相邻设备呢?相邻设备的识别通过物理网卡的硬件地址进行识别。物理地址:MAC地址 unit8_mac[6]–无符号6个字节的整数以太网协议格式:6字节源mac地址/6字节目的mac地址:标识从哪个设备传输到哪个设备proto:上层网络层协议类型,用于数据分用data:网络层的报文数据CRC:校验和数据帧尾一块网卡封装了以

2020-05-09 18:58:08 296

原创 IP地址、路由器、数据分片、地址管理、子网掩码、路由选择、公网与私网

网络层负责地址管理与路由选择。IP地址、路由器4位协议版本:IPV4/IPV64位头部长度:IP报头也是不定长的。最长60字节,最短20字节。有40字节的选项数据,以4字节为单位。8位TOS字段:3位优先权弃用,4位服务类型(最小延时、最大吞吐量、最高可靠性、最小成本),1位保留。16位数据大小:包含IP报头在内的一个IP报文的大小。最大65535–意味着一个IP报文的最大长度不能超...

2020-04-25 15:17:41 674

原创 SYN泛洪攻击、可靠传输(两个机制、一个校验和)、面向连接(五个机制)、面向字节流、粘包、保活机制

握手失败后服务端如何处理:若服务端回复ACK+SYN后,迟迟无法得到恢复,则服务端会发送RST重置连接报文。然后销毁socket。SYN泛洪攻击:恶意主机,不断的发送SYN请求给服务器,但是不进行最后一次ACK回复。TIME_WAIT状态有什么用:保护主动关闭方,避免立即使用相同地址信息通信。保护客户端,服务端就算重启,也必须使用与以前相同的地址信息(没有TIME_WAIT最好,否则重启还需...

2020-04-19 19:50:15 988

原创 左右最值最大差、顺时针打印矩阵

左右最值最大差题目描述给定一个长度为N(N>1)的整型数组A,可以将A划分成左右两个部分,左部分A[0…K],右部分A[K+1…N-1],K可以取值的范围是[0,N-2]。求这么多划分方案中,左部分中的最大值减去右部分最大值的绝对值,最大是多少?给定整数数组A和数组的大小n,请返回题目所求的答案。示例:[2,7,3,1,1],5返回:6代码:class MaxGap {p...

2020-04-18 19:43:35 166

原创 HTTPS、UDP/TCP、三次握手、四次挥手

HTTPS协议:其实就是加密后的HTTP协议–自定制协议/HTTP协议。https到底是如何进行加密传输的:通过ssl加密实现–非对称加密算法/对称加密算法+签名证书数据直接在网络中传输,很容易被劫持,有很大的安全隐患。—对传输过程进行加密对称加密算法:如何加密就如何解密–加密算法和解密算法是一样的。优点:加密解密效率比较高。缺点:容易被破解,使用时间稍长就会被中间劫持,根据数据...

2020-04-18 15:51:36 267

原创 合唱团、马戏团

合唱团题目描述有 n 个学生站成一排,每个学生有一个能力值,牛牛想从这 n 个学生中按照顺序选取 k 名学生,要求相邻两个学生的位置编号的差不超过 d,使得这 k 个学生的能力值的乘积最大,你能返回最大的乘积吗?输入描述:每个输入包含 1 个测试用例。每个测试数据的第一行包含一个整数 n (1 <= n <= 50),表示学生的个数,接下来的一行,包含 n 个整数,按顺序表示每...

2020-04-17 16:36:38 193

原创 数组中出现次数超过一半的数字

数组中出现次数超过一半的数字题目描述数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}。由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。如果不存在则输出0。代码:class Solution {public: int MoreThanHalfNum_Solution(vector<in...

2020-04-15 20:22:11 120

原创 乒乓球筐、查找兄弟单词

乒乓球筐问题描述:nowcoder有两盒(A、B)乒乓球,有红双喜的、有亚力亚的……现在他需要判别A盒是否包含了B盒中所有的种类,并且每种球的数量不少于B盒中的数量,该怎么办呢?输入描述:输入有多组数据。每组数据包含两个字符串A、B,代表A盒与B盒中的乒乓球,每个乒乓球用一个大写字母表示,即相同类型的乒乓球为相同的大写字母。字符串长度不大于10000。输出描述:每一组输入对应一行输...

2020-04-14 20:22:24 175

原创 单词倒排、骆驼命名法

骆驼命名法题目描述:从C/C++转到Java的程序员,一开始最不习惯的就是变量命名方式的改变。C语言风格使用下划线分隔多个单词,例如“hello_world”;而Java则采用一种叫骆驼命名法的规则:除首个单词以外,所有单词的首字母大写,例如“helloWorld”。请你帮可怜的程序员们自动转换变量名。输入描述:输入包含多组数据。每组数据一行,包含一个C语言风格的变量名。每个变量名长度...

2020-04-13 19:48:18 227

原创 打电话、求和

打电话题目描述上图是一个电话的九宫格,如你所见一个数字对应一些字母,因此在国外企业喜欢把电话号码设计成与自己公司名字相对应。例如公司的Help Desk号码是4357,因为4对应H、3对应E、5对应L、7对应P,因此4357就是HELP。同理,TUT-GLOP就代表888-4567、310-GINO代表310-4466。NowCoder刚进入外企,并不习惯这样的命名方式,现在给你一串电话号...

2020-04-12 20:00:32 207

原创 解读密码、走迷宫

解读密码题目描述nowcoder要和朋友交流一些敏感的信息,例如他的电话号码等。因此他要对这些敏感信息进行混淆,比如在数字中间掺入一些额外的符号,让它看起来像一堆乱码。现在请你帮忙开发一款程序,解析从nowcoder那儿接收到的信息,读取出中间有用的信息。输入描述:输入有多行。每一行有一段经过加密的信息(其中可能包含空格),并且原始信息长度不确定。输出描述:输出每段信息中数字信息。...

2020-04-10 20:01:01 242

原创 五子棋、Emacs计算器

题目说明NowCoder最近爱上了五子棋,现在给你一个棋局,请你帮忙判断其中有没有五子连珠(超过五颗也算)。输入描述:输入有多组数据,每组数据为一张20x20的棋盘。其中黑子用“*”表示,白子用“+”表示,空白位置用“.”表示。输出描述:如果棋盘上存在五子连珠(无论哪种颜色的棋子),输入“Yes”,否则输出“No”。示例:输入:............................

2020-04-09 20:49:34 5731

原创 发邮件、最长上升子序列

题目描述NowCoder每天要给很多人发邮件。有一天他发现发错了邮件,把发给A的邮件发给了B,把发给B的邮件发给了A。于是他就思考,要给n个人发邮件,在每个人仅收到1封邮件的情况下,有多少种情况是所有人都收到了错误的邮件?即没有人收到属于自己的邮件。输入描述输入包含多组数据,每组数据包含一个正整数n(2≤n≤20)。输出描述:对应每一组数据,输出一个正整数,表示无人收到自己邮件的种数。...

2020-04-08 20:44:08 154

原创 CSDN数学公式编辑

1.$a+b$:a+ba+ba+b$a-b$:a−ba-ba−b$a*b$:a∗ba*ba∗b$\frac{a}{b}$:ab\frac{a}{b}ba​2.$x^n$:xnx^nxn$\log_a^b$:log⁡ab\log_a^blogab​$\ln x$:ln⁡x\ln xlnx上标用’^’下标用’_’如果上标或者下表不止一个符号,用’{}’括起来3.$\sqrt ...

2020-04-08 16:19:06 361

原创 C++中append函数用法、字符串计数、最长公共子序列

题目描述求字典序在s1和s2之间的,长度在len1到len2的弦的个数,结果mod 1000007。输入描述:每组数据包涵s1(长度小于100),s2(长度小于100),len1(小于100000),len2(大于len1,小于100000)。输出描述:输出答案。示例:输入abc 1 2输出56字典序排序:即从两个字符串的下标为0开始进行对比,字典序是从左往右进行对比的。...

2020-04-07 21:15:07 812

原创 蘑菇阵、红与黑

蘑菇阵题目描述:现在有两个好友A和B,住在一片长有蘑菇的由n*m个方格组成的草地,A在(1,1),B在(n,m)。现在A想要拜访B,由于她只想去B的家,所以每次她只会走(i,j+1)或(i+1,j)这样的路线,在草地上有k个蘑菇种在格子里(多个蘑菇可能在同一方格),问:A如果每一步随机选择的话(若她在边界上,则只有一种选择),那么她不碰到蘑菇走到B的家的概率是多少?输入描述:第一行N,M,...

2020-04-06 20:58:21 154

原创 数据库连接池、mkdir

题目描述Web系统通常会频繁地访问数据库,如果每次访问都创建新连接,性能会很差。为了提高性能,架构师决定复用已经创建的连接。当收到请求,并且连接池中没有剩余可用的连接时,系统会创建一个新连接,当请求处理完成时该连接会被放入连接池中,供后续请求使用。现在提供你处理请求的日志,请你分析一下连接池最多需要创建多少个连接。输入描述:输入包含多组数据,每组数据第一行包含一个正整数n(1≤n≤1000...

2020-04-05 20:41:24 127

原创 Linux小测03-HTTP专题

HTTP1.文件传输协议是:FTP协议。SMTP是简单邮件传送协议(Simple Mail Transfer Protocol)FTP是文件传输协议(File Transfer Protocol)UDP是用户数据报协议(User Datagram Protocol)TELNET是远程终端访问协议 (Telecommunication Network)2.以下关于HTTP协议叙述正确的是...

2020-04-04 18:20:18 2564

原创 Pre-Post、Rational Arithmetic

Rational Arithmetic题目描述:For two rational numbers, your task is to implement the basic arithmetics, that is, to calculate their sum, difference, product and quotient.输入:Each input file contains one...

2020-04-03 21:08:07 292

原创 MariaDB安装+mysql基本操作

MariaDB和MySQL在Linux上基本是相同的。以下操作都以 root 用户进行操作安装安装 mariadb 服务# yum install -y mariadb-server安装 mariadb 命令行客户端# yum install -y mariadb安装 mariadb C library# yum install -y mariadb-libs安装 mari...

2020-04-02 19:34:07 402

原创 每日一题03、04(养兔子、抄送列表、年会抽奖、收件人列表)

1.上网的时候,访问某个网页却突然出现了某个运营商的网页(如联通、电信)。出现此问题可能的原因是?(A ) A DNS劫持 B DDoS攻击 C MAC地址欺骗 D 伪造DHCP服务器2.TCP建立连接的三次握手中,第二次握手发送的包会包含的标记,最正确的描述是?(B)A ACKB SYN,ACKC SYN,PSHD SYN12343.当使用TCP协议编程时,下列问题...

2020-04-02 18:33:47 999

原创 每日一题01、02(斐波那契凤尾、淘宝网店、美国节日、分解因数)

斐波那契凤尾题目描述NowCoder号称自己已经记住了1-100000之间所有的斐波那契数。为了考验他,我们随便出一个数n,让他说出第n个斐波那契数。当然,斐波那契数会很大。因此,如果第n个斐波那契数不到6位,则说出该数;否则只说出最后6位。输入描述:输入有多组数据。每组数据一行,包含一个整数n (1≤n≤100000)。输出描述:对应每一组输入,输出第n个斐波那契数的最后6位。...

2020-04-01 19:57:12 549

原创 请求和响应报文、 Cookie、session及其区别、HTTP服务器搭建

头部:一个个key:value形式的键值对,键值对之间以\r\n作为间隔。每个键值对以==\r\n作为结尾==。Connection:描述当前连接是否是长连接 close/keep-aliveContent-Length:描述当前正文有多长。通过这个描述信息可以告诉对端本次请求应该接受多长的数据。first\r\nkey:val\r\nkey:val\r\nkey:val\r\n\r\n...

2020-03-27 11:53:34 964

原创 Linux小测02

1.进程和线程是操作系统中最基本的概念,下列有关描述错误的是 (D)A.进程是程序的一次执行,而线程可以理解为程序中运行的一个片段B.由于线程没有独立的地址空间,因此同一个进程的一组线程可以访问该进程资源,这些线程之间的通信也很高效C.线程之间的通信简单(共享内存即可,但须注意互斥访问的问题),而不同进程之间的通信更为复杂,通常需要调用内核实现D.线程有独立的虚拟地址空间,但是拥有的资源相...

2020-03-24 14:49:04 1732

原创 应用层协议、HTTP协议及格式、URL包含要素(首行、响应首行)

应用层协议:负责应用程序之间的数据沟通–而应用程序是程序员写的,因此应用层协议实际也是程序员自己定的。自定制协议–自己定义的协议,私有协议。这里是一个网络版计算器的例子:客户端向服务端传递两个数字以及一个运算符,服务端收到数据进行解析得到数字与运算符,然后进行运算,最终将结果返回给客户端。int num1=10;int num2=20;char op='+';客户端需要将多个数据...

2020-03-21 17:38:02 753

原创 HTTP请求方式、状态码、POST和GET区别

8种请求方式序号方法描述1.GET请求指定的页面信息,并返回实体主体2.HEAD类似于get请求,只不过返回的响应中没有具体的内容,用于获取报头3.POST向指定资源提交数据进行处理请求,数据被包含在请求体中。POST请求可能会导致新的资源的建立和已有资源的修改4.PUT从客户端向服务器传送的数据取代指定的文档的内容5.DELETE...

2020-03-21 17:33:28 739

原创 HTTP协议版本之间的区别和差异

HTTP各个版本的特点:HTTP/0.9: 协议的最初版本,功能简陋,仅支持请求方式GET,并且仅能请求访问HTML格式的资源。HTTP/1.0: 在0.9版本上做了进步,增加了请求方式POST和HEAD;不再局限于0.9版本的HTML格式,根据Content-Type可以支持多种数据格式,但是每次TCP连接只能发送一个请求。HTTP/1.1: 就是引入了持久连接,即TCP连接默认不关闭,可...

2020-03-21 17:10:07 623

原创 多线程与多进程实现tcp服务端

当前的tcp服务端程序无法持续与客户端进行通信:多线程和多进程:多进程:1.父进程创建子进程,数据独有,各自有一份cli_sock。然而子进程通过cli_sock通信,但是父进程不需要,因此父进程关闭自己的cli_sock。2.父进程要等待子进程退出,避免产生僵尸进程。为了使父进程只负责获取新连接,因此对于SIGCHLD信号自定义处理回调等待。多线程:1.主线程获取到新连接然后创建新线...

2020-03-19 16:50:16 166

原创 测试用例

测试用例的基本要素1.测试用例的概念:是为了实施测试而向被测试的系统提供的一组集合,这组集合包含:测试环境、操作步骤、测试数据、预期结果等要素。一个好的测试用例能让一个不熟悉业务的人能根据用例来进行很快的测试。2.评价测试用例的标准:对比好坏代码的评价标准用例表达清楚,无二义性。用例可操作性强。用例的输入与输出明确。一条用例只有一个预期结果。用例的可维护性好。用例对需求的覆盖率...

2020-03-18 15:54:19 475

原创 Linux小测01

1.在bash中,在一条命令后加入"1>&2"意味着:标准输出重定向到标准错误输出。012标准输入标准输出标准错误2.无锁化编程有哪些常见方法?针对计数器,可以使用原子加。原子操作是汇编级别支持的指令lock xadd,如c++中的interlockIncrement,java中有AutomicInteger都是对其的封装。简单变量的线程同步...

2020-03-14 15:43:13 1632

原创 grep常用参数说明及常用用法

grep常用参数说明grep [OPTIONS]OPTIONS:-e: 使用正则搜索-i: 不区分大小写-v: 查找不包含指定内容的行-w: 按单词搜索-c: 统计匹配到的次数-n: 显示行号-r: 逐层遍历目录查找-A: 显示匹配行及前面多少行, 如: -A3, 则表示显示匹配行及前3行-B: 显示匹配行及后面多少行, 如: -B3, 则表示显示匹配行及后3行-C: 显示...

2020-03-14 15:37:04 559

原创 bash中 2>&1 & 的详细解释

1、首先,bash中0,1,2三个数字分别代表STDIN_FILENO、STDOUT_FILENO、STDERR_FILENO,即标准输入(一般是键盘),标准输出(一般是显示屏,准确的说是用户终端控制台),标准错误(出错信息输出)。012标准输入标准输出标准错误2、输入输出可以重定向,所谓重定向输入就是在命令中指定具体的输入来源,譬如 cat < test....

2020-03-14 15:33:31 1770

原创 tcp编程socket接口

tcp编程流程:面向对象、可靠传输、面向字节流客户端:创建套接字描述地址信息发起连接请求连接建立成功收发数据关闭服务端:创建套接字描述地址信息开始监听接收连接请求新建套接字获取新建套接字描述符通过这个描述符与客户端通信关闭tcp编程socket接口1.创建套接字int socket(int domian, int type, int protoco...

2020-03-14 12:25:54 224

原创 二级空间配置器、空间配置器的默认选择、再次封装、对象的构造与释放

内存池内存池:一块大的内存空间+对空间的管理机制。1.提前准备好一块大的内存块备用,如果用户需要空间的时候,不需要通过malloc每次向系统索要,直接从备用大块内存中来进行获取。2.不会频繁向系统索要小的内存块。解决内存碎片问题、申请空间效率低问题。不会浪费额外的空间。3.用户将空间使用完成后,从谁跟前借,用完之后就还给谁。对于用户归还的空间,内存池没有办法直接将小块内存连接到大块内存上...

2020-03-13 20:51:12 271

原创 list迭代器的模拟实现

namespace bite{ // List的节点类 template<class T> struct ListNode { ListNode(const T& val = T()) : _pPre(nullptr) , _pNext(nullptr) , _val(val) {} L...

2020-03-11 19:53:49 111

原创 C++复习06(算法、迭代器、适配器、仿函数、一级空间适配器实现)

算法如何衡量一个算法的好坏:时间复杂度+空间复杂度。算法:问题的求解步骤,以有限的步骤,解决数学或逻辑中的问题。STL中的算法主要分为两大类:与数据结构相关算法(容器中的成员函数)和通用算法(与数据结构不相干)。STL中通用算法总共有70多个,主要包含:排序,查找,排列组合,数据移动,拷贝,删除,比较组合,运算等。什么是通用类型算法:通用算法本身不会执行容器的操作,它们只会运行于迭代器...

2020-03-10 21:41:47 248

原创 udp和tcp服务器的C语言实现

编写一个udp服务端的C语言程序 1. 创建套接字2. 为套接字绑定地址信息3. 接收数据4. 发送数据5. 关闭套接字#include <stdio.h>#include <stdlib.h>#include <unistd.h>#include <string.h>#include <netinet/in.h> ...

2020-03-07 17:00:26 1520

空空如也

空空如也

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

TA关注的人

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