- 博客(56)
- 资源 (10)
- 收藏
- 关注
原创 4.1 网络基础之网络IO
通过多设置几个select,相比方法1,能突破C10K,但是难以突破C1000K,因为每次调用fd_set需要copy进内核,然后返回再copy出来,涉及系统调用,当大量copy时,还是有限制的。解决办法:TCP协议中,数据以字节流方式传输,被发送的数据可能不是一次性发完,可能是被拆成很多个小段,一段段发出去。阻塞模式下,发送缓冲区空间不够,程序阻塞在send、write函数,直到发送缓冲区数据发送出去腾出空间,将剩下数据再拷贝到腾出的空间,直接到数据全部拷贝进发送缓冲区,函数返回。
2023-10-25 23:28:55
879
原创 centos的/mnt/hgfs文件夹下不显示共享文件夹
虚拟机中,Linux系统与宿主机的共享文件夹默认路径为linux系统中的/mnt/hgfs,若 cd到 /mnt/hgfs 下,
2023-04-17 18:24:20
1328
2
原创 windows下用c写http服务器遇到“_imp_WSAStartup”问题
windows下用c写http服务器遇到“_imp_WSAStartup”问题
2023-03-27 00:06:28
196
原创 Linux常用命令和工具
目录一、基础操作命令二、vim的使用三、grep搜索命令四、find查找命令五、wc统计命令六、mv移动 / 重命名 文件(夹)一、基础操作命令1、echo命令用于在终端显示字符串或变量,格式为:“echo [字符串 | 变量]”查看主机名如下:2、reboot命令用于重启系统(仅root用户可以使用),格式为:”reboot”3、ifconfig用于获取网卡配置与网络状态等信息:格式为”ifconfig [网络设备] [参数]”4、pwd命令用于显示当前
2022-04-23 11:31:00
2330
原创 保姆级别带你手撕红黑树BRTree
一、前言本文是自己在学习过程中,记录下的一些总结,以便日后复习,同时分享出来,方便与更多人学习交流,共同进步。鄙人水平有限,若有误,请不吝赐教😁😁😁。二、从头介绍红黑树树是一种二叉树,比较常用的数据结构,如果对二叉树不是很熟悉或者有遗忘的朋友,可以看看我之前做的笔记。第一篇介绍二叉树的基础知识:数据结构与算法 树_振予的博客-优快云博客第二篇介绍二叉搜索树和二叉平衡树树:数据结构与算法 查找_振予的博客-优快云博客三、红黑树介绍每当我们打开电脑查找一个文档、在教务系统输入我们
2022-04-20 12:33:11
1757
3
原创 记录偶遇for中std::string::size()的一次坑
今天玩力扣周赛中,遇到一个小小的坑。当然主要原因是自己掌握的知识不多,理解不够清楚。那就记录下来吧,希望以后不会再掉进去。我们先来看一段代码,如下:#include<iostream>#include<cstring>#include<algorithm>using namespace std;int main(){ string s = "hello"; for(int i = 0;i < s.size();i ++){ cout &l
2022-04-10 14:28:46
1395
原创 acwing 每日一题 1761.阻挡广告牌
题目描述:(不想读题直接看最后的分析)在漫长的产奶期间,奶牛贝茜喜欢透过窗户盯着马路对面的两个巨大的矩形广告牌,上面写着“农夫亚历克斯的惊人开胃苜蓿”和“农夫格雷格的大粒谷物”。广告牌上这两种精美的牛饲料看上去比农场里的草美味的多。有一天,当贝茜凝视着窗外时,她惊异地看到一辆巨大的矩形卡车停在马路对面。卡车的侧面有一个广告,上面写着“农夫史密斯的精湛牛排”。贝茜对此不太感兴趣,但她非常担心卡车可能会阻挡她观看最喜欢的两个广告牌的视野。给定两个广告牌的位置和卡车的位置,请计算两个广告牌的仍然可见
2022-03-29 23:12:22
877
原创 计算机网络 第六章 应用层
一、应用层概述应用层是计算机网络体系结构的最顶层,是设计和建立计算机网络的最终目的,也是计算机网络中发展最快的部分。早期基于文本的应用(电子邮件、远程登录、文件传输、新闻组)、20世纪90年代将因特网带入千家万户的万维网WWW、当今流行的即时通信、P2P文件共享及各种音视频应用。计算设备的小型化和“无处不在”,宽带住宅接入和无线接入的日益普及和迅速发展,为未来更多的新型应用提供了广阔的舞台。在本章中,我们以一些经典的网络应用为例来学习有关网络应用的原理、协议和实现方面的知识。后面我们一一学习
2022-01-31 00:07:49
3803
4
原创 计算机网络 第五章 传输层
一、传输层概述之前课程所介绍的计算机网络体系结构中的物理层、数据链路层以及网络层它们共同解决了将主机通过异构网络互联起来所面临的问题,实现了主机到主机的通信。但实际上在计算机网络中进行通信的真正实体是位于通信两端主机中的进程。如何为运行在不同主机上的应用进程提供直接的通信服务是运输层的任务,运输层协议又称为端到端协议。运输层直接为应用进程间的逻辑通信提供服务运输层向高层用户屏蔽了下面网络核心的细节(如网络拓扑、所采用的路由选择协议等),它使应用进程看见的就好像是在两个运输层实体之间有条端到端的逻
2022-01-29 13:21:35
485
原创 计算机网络 第四章 网络层
一、网络层概述网络层的主要任务是实现网络互连,进而实现数据包在各网络之间的传输。要实现网络层任务,需要解决以下主要问题:a、网络层向运输层提供怎样的服务(“可靠传输”还是“不可靠传输”)b、网络层寻址问题c、路由选择问题因特网(Internet) 是目前全世界用户数量最多的互联网,它使用TCP/IP协议栈。由于TCP/IP协议栈的网络层使用网际协议IP,它是整个协议栈的核心协议,因此在TCP/IP协议栈中网络层常称为网际层。综上所述,我们通过学习TCP/IP协议栈的网际层来学习网络层的理
2022-01-16 00:16:16
5794
原创 计算机网络 第三章 数据链路层
一、数据链路层概述链路(Link)就是从一个结点到相邻结点的一段物理线路,而中间没有任何其他的交换结点。数据链路(Data Link)是指把实现通信协议的硬件和软件加到链路上,就构成了数据链路。数据链路层以帧为单位传输和处理数据。使用点对点信道的数据链路层的三个重要问题:(1)、封装成帧:数据链路层给网络层协议数据单元添加一个数据链路层协议首部,简称为帧头,再添加一个帧尾。这两个操作叫封装成帧。(2)、差错检测:检错码封装在帧尾,接收方根据检测码和检测算法就可以判断是否发生差错。(3)、
2022-01-14 23:47:14
3356
原创 计算机网络 第二章 物理层
目录前言一、传输媒体二、传输方式三、编码与调制四、信道的极限容量1、奈氏准则2、香农公式前言物理层考虑的是怎样才能在连接各种计算机的传输媒体上传输数据比特流。物理层为数据链路层屏蔽了各种传输媒体的差异,使数据链路层只需要考虑如何完成本层的协议和服务,而不必考虑网络具体的传输媒体是什么。一、传输媒体导引型传输媒体:双绞线、同轴电缆、光纤(多模光纤、单模光纤)、电力线。非导引型传输媒体:无线电波、微波、红外线、可见光。二、传输方式可以分为三种不同的分类方式
2022-01-13 23:54:34
3561
原创 计算机网络 第一章 计算机网络概述
目录一、计算机网络在信息时代中的作用二、因特网概述三、因特网的组成1、主机之间的通信方式1.1、客户服务器方式(C/S 方式),即Client / Server方式1.2、对等方式(P2P 方式) ,即 Peer-to-Peer方式2、核心部分 数据交换2.1、电路交换(面向连接)2.2、分组交换2.3、报文交换四、计算机网络在我国发展五、计算机网络的类别六、计算机网络的性能6.1、速率6.2、带宽6.3、吞吐量6.4、时延6.5、..
2022-01-13 19:19:47
582
原创 数据结构与算法 排序之代码实现
一、冒泡排序从前往后遍历,每次相邻的两个比较,把大的往后交换,每趟都会把当前序列最大的归位,代码如下:#include<iostream>using namespace std;const int N = 1e4 + 10;int a[N];void maopao_sort(int n){ for(int i = n - 1; i >= 0;i --){ // i控制趟数 for(int j = 0;j < i;j ++){ // j
2022-01-08 14:35:31
751
原创 数据结构与算法 排序
一、相关定义二、排序前的存储结构三、插入排序1、基本介绍2、直接插入排序上面的方法,每次都需要判断一下j>=0,我们可以使用哨兵省去该判断操作。如下图,让第一个位置空出来,放置每次即将被插入的元素。3、折半插入排序4、希尔排序主程序:四、交换排序1、冒泡排序2、快速排序主程序:子程序:...
2022-01-04 07:53:13
910
原创 数据结构与算法 查找
一、线性表的查找1、顺序查找2、折半查找这里有两种实现方法,一种是迭代,一种是递归。2.1 迭代方法#include<stdio.h>#define N 10typedef struct{ int data[N]; int length;}nums;int Seach_bin(nums a, int key){ int left = 0; int right = a.length; int mid; while(left &l...
2022-01-03 00:28:50
482
原创 数据结构与算法 图
一、定义图是一种比较常用的数据结构,有许多定义需要理解,下面一一介绍。图:G = (V, E) Graph = (Vertex, Edge) V : 顶点(数据元素)的有穷非空集合; ...
2022-01-02 00:03:13
657
原创 数据结构与算法 树
一、定义树是一种常用的一种结构,下面看看有哪些关于树的定义。根结点、孩子结点、兄弟结点、叶子结点、内部结点、节结的度、树的度,如下图:满二叉树:一棵深度为k且有个结点的二叉树称为满二叉树。其特点:1、每一层上的结点数都是最大结点数(即每层都满),2、叶子结点全部在最底层。如下图:完全二叉树:深度为k的具有n个结点的二叉树,当且仅当其每一个结点都与深度为k的满二叉树中编号为1~n的结点一一对应时,称之为完全二叉树。如下图:二、性质(二叉树性质)二叉树(每个节点最多有两个孩子
2021-12-29 23:03:29
421
原创 数据结构与算法 KMP算法
假设有两个字符串S、T,S为长串,T为短串,寻找T在S中出现的位置。串的定义可以分为顺序串和链式串。此处以顺序串为例,结构定义如下(此处我们从数组位置1开始存储):#include<stdio.h>#include<stdlib.h>#include<string.h>#define MAXLEN 255typedef struct { // 串的顺序存储结构 char ch[MAXLEN + 1]; // 存储串的一维数组 i
2021-12-27 22:04:32
707
原创 数据结构与算法 队列
目录一、前言二,结构定义三、相关操作一、前言队列作为一种常用的结构,可以用顺序队列和链式队列实现。1、顺序队列2、链式队列二,结构定义1、顺序队列#include<stdio.h>#include<stdlib.h>#define MAXSIZE 100typedef struct { // 队列的顺序表示 int * base; // 初始化的动态分配存储空间 int front; // 头指针 int re
2021-12-27 19:47:29
564
原创 数据结构与算法 栈
目录一、前言二、结构定义三、相关操作一、前言栈作为一种常用的结构,可以用顺序栈和链栈实现。1、顺序栈(两个指针分别指向栈底、栈顶)2、链式栈(和单链表一样,只不只能从链表头部进行)这两种存储方式各有优略,我们可以根据实际情况选择对应的存储方式。 下面,着重分析两种存储的定义和相关操作。二、结构定义1、首先使用顺序存储的方式定义一个栈的结构体,有栈底栈顶指针,和栈的大小。#include<stdio.h>#include<stdlib.
2021-12-27 16:59:09
570
原创 数据结构与算法 线性表
目录一、前言二、定义(顺序表与单链表)三、单链表相关操作一、前言线性表有两种存储方式,一是顺序存储,二是链式存储。1、顺序存储2、链式存储这两种存储方式各有优略,我们可以根据实际情况选择对应的存储方式。 下面,着重分析两种存储的定义和相关操作。二、定义(顺序表与单链表)实际中,我们会遇到各种场景,比如学生的信息存储或者图书馆书籍存储,这些需要用到数据结构。那么下面直接以图书馆的书籍为例子进行定义。1、首先使用顺序存储的方式定义了书籍的结构体,下面定义静态.
2021-12-22 20:19:10
506
原创 结构体指针
一、结构体指针结构体指针定义与赋值:#include<stdio.h>#include<stdlib.h>typedef struct struct_test{ int a; int b;}test;int main(){ test s; // 定义了一个结构体变量 s.a = 1; // 给变量的成员赋值 test* ss = &s; // 定义了一个结构体指针变量,并指向s ss->a = 92;
2021-12-22 18:46:08
637
原创 力扣121题 “买卖股票的最 佳时机”
1、题目描述(难度 简单)样例:数据范围2、题目解析方法一:用两个变量记录当前股票最小价格和,如果当前卖掉的最大利润,然后遍历数组的时候不断更新,最后输出的最大利润则是题目答案。c++代码如下:class Solution {public: int maxProfit(vector<int>& prices) { int minprice = int(1e9); // 当前遇到的最小价格 int maxp.
2021-12-17 15:16:35
883
原创 CSAPP 第二章 信息的表示和处理
计算机中研究三种最重要的数字表示。无符号(unsigned)编码基于传统的二进制表示法,表示大于或者等于零的数字。补码(two's-complement)编码是表示有符号整数的最常见的方式。浮点数(floating point)编码是表示实数的科学记数法的以2为基数的版本。整数的运算满足结合律,但是浮点数由于表示的精度有限,是不可结合的。大多数机器上,表达式(3.14+1e20)-1e20求得的值会是0.0,而3.14+(1e20-1e20)求得的值会是3.14。目录...
2021-12-17 13:19:18
562
原创 递归实现组合型枚举
1、题目描述从1 ~n这n个整数中随机选出m个,输出所有可能的选择方案。输入格式两个整数n,m,在同一行用空格隔开。输出格式按照从小到大的顺序输出所有方案,每行1个。首先,同一行内的数升序排列,相邻两个数用一个空格隔开。其次,对于两个不同的行,对应下标的数一一比较,字典序较小的排在前面(例如1 3 5 7排在1 3 6 8前面)。数据范围n > 0,0mn,n + (n - m)25输入样例4 2输出样例1 2 1 3...
2021-12-17 10:41:40
397
原创 递归实现排列型枚举
1、题目描述把1 ~ n这n个整数排成一行后随机打乱顺序,输出所有可能的次序。输入格式输入一个整数n。输出格式按照从小到大的顺序输出所有方案,每行1个。首先,同一行相邻两个数用一个空格隔开。其次,对于两个不同的行,对应下标的数一一比较,字典序较小的排在前面。数据范围1n9输入样例3输出样例1 2 3 1 3 2 2 1 3 2 3 1 3 1 2 3 2 1 2、题目解析如下如,采用dfs深度递归搜索树,加入n=3时,考虑每一个位置放哪个数,可
2021-12-16 22:49:07
896
Linux学习书籍《Linux就该这么学》
2017-09-12
dbcp3个相关jar包
2017-09-10
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人