网络协议总览和记录
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...
在存在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
# 编译安装
...
如何在vscode自定义插入时间按键、配置取消vim的ctrl
如何在 vscode 中插入时间
[
{
"key": "alt+shift+t",
"command": "editor.action.insertSnippet",
"when": "editorTextFocus",
"args": {
"snippet": "$CURRENT_YEAR-$CURRENT_MONTH-$CURRENT_DATE $CURRENT_HOUR:$CURRENT_MINUTE:$CURRENT_SECOND"
}
}
]
Other Solutions: https://stackoverflow.com/questions/3...
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/...
Rust 中的 std::mem::forget 函数
std::mem::forget 函数
为什么在转换为迭代器后,不会调用 drop 函数
因为在 into_iter 中使用了 std::mem::forget 函数
into_iter 函数将一个集合转换为一个迭代器,它会获取集合的所有权。
创建一个迭代器对象。
将集合的所有权转移到迭代器中。
防止集合的析构函数被自动调用(因为集合的所有权已经被转移)。
std::mem::forget 是 Rust 标准库中的一个函数,它的作用是防止 Rust 自动调用析构函数。具体来说:
当你调用 forget(self) 时,self 的所有权被“遗忘”,Rust 不会自动调用其析构函数。
这通常用于手动管理资源的生命周期,例如在实现自定义迭代器时。
...
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
向量
...
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...
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 可选参数...
29 post articles, 4 pages.