c++基础
1 c++初识1.1 第一个c++ 程序1234567891011// 引入头文件#include<iostream>// 使用命名空间using namespace std;// 入口函数int main() { cout << "hello c++" << endl; return 0;}
1.2 注释作用:在代码中加一些说明和解释,方便阅读代码两种格式
单行注释://描述信息
通常放在一行的代码的上方或者一条语句的末尾,对改行代码说明
多行注释:/*描述信息*/
通常放在一段代码的上方,对该段代码做整体说明
1.3 变量作用:给一段指定的内存空间起名,方便操作这段内存语法:数据类型 变量名 = 初始值
1.4 常量作用: 用于记录程序中不可更改的数据两种方式
#define 宏常量: define 常量名 常量值
通常在文件上方定义,便是一个常量
const修饰的变量 const 数据类型 常量名 = 常量值
通常在变量定义前加关键字const,修饰该变 ...
Tcp和Udp协议
TCP/IP协议TCP/IP 协议是 Transmission Control Protocol/Internet Protocol 的缩写,即传输控制协议 / 网际协议,它是互联网的基础协议,由一系列协议组成。
TCP/IP 协议的层次结构
应用层:应用层是 TCP/IP 协议的最高层,负责处理应用程序之间的通信。常见的应用层协议有 HTTP(超文本传输协议)、FTP(文件传输协议)、SMTP(简单邮件传输协议)、DNS(域名系统)等。
传输层:传输层主要负责在不同主机上的应用程序之间提供可靠的端到端通信。主要协议有 TCP 和 UDP(用户数据报协议)。TCP 提供面向连接的、可靠的字节流服务,它通过三次握手建立连接,在数据传输过程中进行差错检测和纠正,确保数据的完整性和顺序性。UDP 则提供无连接的、不可靠的数据包服务,它不保证数据的可靠传输,但具有较低的延迟,适用于对实时性要求较高的应用,如音频、视频流传输等。
网络层:网络层负责处理网络之间的通信,主要协议是 IP 协议。IP 协议的主要功能是寻址和路由选择,它为每个 ...
HTTPS解析
HTTP协议
定义与基本功能
HTTP 是互联网上信息传递与交互的基础协议之一,它规定了客户端(如浏览器)和服务器之间如何进行数据交换。其核心功能是让客户端能够向服务器发送请求,获取服务器上存储的各种资源,如网页、图片、视频、文件等,同时服务器能够根据客户端的请求,将相应的资源返回给客户端。
工作原理
请求 - 响应模型 客户端发起一个 HTTP 请求,该请求包含了请求方法(如 GET、POST 等)、请求头(包含一些关于请求的附加信息,如客户端类型、所请求资源的类型等)以及请求体(如果有的话,通常用于 POST 请求来传递数据)。服务器接收到请求后,会根据请求的内容进行处理,并返回一个 HTTP 响应。响应也包含响应头(提供关于响应的信息,如状态码、内容类型等)和响应体(即客户端所请求的资源内容)。
无状态性 HTTP 是无状态协议,意味着每个请求都是独立的,服务器不会在不同请求之间记住客户端的状态信息。这使得 HTTP 协议简单且易于实现,但在某些需要跟踪用户状态的应用场景中,就需要通过其他技术(如 Cookie、Session 等)来弥补这一不足。
常用方法
GET ...
git常用操作
GitGit 是一款分布式版本控制系统,被广泛应用于软件开发、文档管理等领域。
特点
分布式:与集中式版本控制系统不同,Git 没有中心服务器,每个开发者的本地计算机就是一个完整的版本库,包含了项目的所有历史记录和版本信息。这使得开发者可以在本地进行完整的开发、提交、暂存等操作,而无需依赖网络连接到中心服务器。
高效性:Git 采用了一种高效的对象存储模型,能够快速地进行版本提交、切换分支、合并等操作。它只存储文件的差异,而不是整个文件的副本,大大节省了存储空间,同时也提高了操作速度。
强大的分支管理:创建、切换和合并分支非常容易且高效,允许开发者在不影响主代码库的情况下,并行地进行不同功能的开发、实验或修复 bug。
基本工作流程
初始化仓库:在项目目录下执行git init命令,将该目录初始化为 Git 仓库,此时会在目录下生成一个隐藏的.git文件夹,用于存储版本数据和相关配置。
添加文件到暂存区:使用git add命令将需要跟踪的文件添加到暂存区。例如,git add file1.txt将file1.txt文件添加到暂存区。
提交暂存区的文件:执行git commit -m ...
网盘搭建图床(AList+网盘)
安装AList
AList 官方文档:https://alist.nn.ci
AList github地址:https://github.com/AlistGo/alist1234567891011121314151617# 解压下载的文件,得到可执行文件:tar -zxvf alist-xxxx.tar.gz# 授予程序执行权限:chmod +x alist# 运行程序./alist server# 获得管理员信息 以下两个不同版本,新版本也有随机生成和手动设置# 低于v3.25.0版本./alist admin# 高于v3.25.0版本# 随机生成一个密码./alist admin random# 手动设置一个密码 `NEW_PASSWORD`是指你需要设置的密码./alist admin set NEW_PASSWORD
网盘挂载到AList(WebDAV服务)
详见文档 https://alist.nn.ci/zh/guide/drivers/
默认服务在5244端口开启
使用Nginx反向代理配置
123456789101112131415 server { ...
Hello World
Welcome to Hexo! This is your very first post. Check documentation for more info. If you get any problems when using Hexo, you can find the answer in troubleshooting or you can ask me on GitHub.
Quick StartCreate a new post1$ hexo new "My New Post"
More info: Writing
Run server1$ hexo server
More info: Server
Generate static files1$ hexo generate
More info: Generating
Deploy to remote sites1$ hexo deploy
More info: Deployment
ipv6可能会需要的小知识
ipv6设置
确保运行商已经接入ipv6
ipv6可能需要在(光猫、路由器)设置,光猫和路由器因品牌不一,具体设置需要自行百度
电脑需开启ipv6
控制面板>网络和Internet>网络连接>右击正在使用的网卡>属性>选中Internet协议版本6(TCP/IPv6)>确定
点击我查看是否可以使用ipv6
ipv6小知识
可能需要设置防火墙 (光猫、路由器、服务器)
使用ipv6进行http请求的格式http://[ipv6地址]:端口
运行商可能会屏蔽一些端口 例如80、8080,使用其他端口即可
有的游戏可以使用ipv6进行联机,如MC
搭建git服务器
搭建git服务器
确保已经安装好了git
初始化git仓库
12#进入存放仓库目录sudo git init --bare 仓库.git
生成ssh公钥
1ssh-keygen -t rsa
公钥保存位置
可以使用记事本打开 linux下可以使用cat命令查看windows下: C:/用户/用户名/.ssh/id_rsa.publinux下: /用户/.ssh/id_rsa.pub将公钥复制到.ssh/authorized_keys文件内
克隆远程仓库
12git clone git@ip:/仓库目录/仓库.git
ipv6进行ssh连接
查看是否可以使用ipv6
1ipconfig #查看是否有ipv6地址
进行ipv6测试点我查看是否可以使用ipv6
修改sshd配置
12vim /etc/ssh/sshd_config
添加
123AddressFamily inet6ListenAddress ::
重启sshd服务
1systemctl restart ssh
手机作为服务器(Termux)
安装 Termux下载方式
f-droid
官网
gitHub
设置
获取手机存储权限 1termux-setup-storage
换源 1termux-change-repo
更新 1pkg update
安装vm 1pkg install vim
配置ssh
安装openssh 1pkg install openssh
设置密码并开启服务123passwdsshd
使用远程连接工具连接
输入ip地址和端口号进行连接 Termuxs的ssh端口号默认为8022
安装nginx
安装及配置 1234567pkg install nginx #安装# 配置nginx# pkg file 包名 可查询包的相关文件pkg file nginx #打开nginx配置文件进行配置即可vim usr/etc/nginx/nginx.conf
启动服务1234nginx #启动服务nginx -s reload #重启服务nginx -s stop #停止服务
常用命令 123netstat -tnlp #查看端口使用情况pkill 进程名 #杀死进程
Termux 自动执 ...
