Home

网络协议总览和记录

TCP 2025-01-21 11:44:46 TCP 四次挥手,在实际中可能只能抓到 3 个包 TCP flag: SYN:建立连接 FIN:断开连接 ACK:响应 PSH:有 DATA数据传输 RST:连接重置 URG:紧急 PSH 和 ACK 是通用的组合 ACK是可能与SYN,FIN等同时使用的,比如SYN和ACK可能同时为1,它表示的就是建立连接之后的响应, RST一般是在FIN之后才会出现为1的情况,表示的是连接重置。 PSH为1的情况,一般只出现在 DATA内容不为0的包中,也就是说PSH为1表示的是有真正的TCP数据包内容被传递。 https://zh.wikipedia.org/wiki/TCP%E5%BB%B6%E8%B...

Read more

在存在Opensssl3.x版本的ubuntu上安装openssl1.1.1

在存在Opensssl3.x版本的ubuntu上安装openssl1.1.1 编译安装 wget https://www.openssl.org/source/openssl-1.1.1.tar.gz tar -xzvf openssl-1.1.1.tar.gz cd openssl-1.1.1 # 配置 ./config --prefix=~/my-package/ssl --openssldir=~/my-package/ssl shared no-apps # 如果出现 no-apps 选项的错误,那么直接忽略这个选项 ./config --prefix=~/my-package/ssl --openssldir=~/my-package/ssl shared # 编译安装 ...

Read more

gcc 多个版本优先级配置,Python3设置为默认版本

多个版本的gcc,改变 gcc 的优先级 sudo update-alternatives --display gcc # 查看gcc的优先级 ls /usr/bin/gcc* # 查看有几个版本的 gcc sudo update-alternatives --config gcc # 手动配置想要的gcc版本 # 配置不同版本的 gcc 的优先级,然后在自动选择的时候,会选择优先级高的 # 如果想要自动替换的话,更改优先级即可 sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-11 11 sudo update-alternatives --install /usr/bin/gcc gcc /usr/...

Read more

Rust 中的 std::mem::forget 函数

std::mem::forget 函数 为什么在转换为迭代器后,不会调用 drop 函数 因为在 into_iter 中使用了 std::mem::forget 函数 into_iter 函数将一个集合转换为一个迭代器,它会获取集合的所有权。 创建一个迭代器对象。 将集合的所有权转移到迭代器中。 防止集合的析构函数被自动调用(因为集合的所有权已经被转移)。 std::mem::forget 是 Rust 标准库中的一个函数,它的作用是防止 Rust 自动调用析构函数。具体来说: 当你调用 forget(self) 时,self 的所有权被“遗忘”,Rust 不会自动调用其析构函数。 这通常用于手动管理资源的生命周期,例如在实现自定义迭代器时。 ...

Read more

Rust的std库

Std 中的宏 测试宏: assert assert_eq assert_ne 编译期 falg 布尔值计算、features: cfg 调试、打印 print println dbg debug_assert debug_assert_eq debug_assert_ne eprint eprintln line column file 字符串 format format_args stringify concat 标记 todo unimplemented unreachable panic compile_error 判断 matches 向量 ...

Read more

OH 编译问题

OH 编译问题 需要版本 python3.9(待验证,看更高版本是不是可以)、gcc-11、clang 使用 gcc-11 我安装了 gcc-11 和 gcc-13,则默认通过 sudo apt install clang 会使用 gcc-13,因此需要先卸载 gcc-13 后再重新安装。 sudo apt remove gcc-13 sudo apt remove clang sudo apt install clang 然后检查: clang -v # 出现 Found candidate GCC installation: /usr/bin/../lib/gcc/x86_64-linux-gnu/11 Selected GCC installation: /usr/b...

Read more

Linux上的工具使用-个人版

Git 常用命令记录 删除本地分支和远程分支 git branch -r # 检查远程分支状态 # 1. 删除本地分支 git branch -d <branch-name> # 如果分支尚未合并,则需要强制删除 git branch -D <branch-name> # 2. 删除远程分支 git push origin --delete <branch-name> # 3. 清理本地远程分支引用 git remote prune origin # 完全同步本地和远程的状态 git fetch --all --prune tcpdump 使用 tcpdump [option] proto dir type option 可选参数...

Read more