自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Windows 安装与配置 OpenSSH Server 操作文档

Windows 10(1809 及以上)、Windows 11、Windows Server 2019 及以上。

2026-11-05 10:47:29 139

原创 WSL桥接网络配置

WSL 会直接共享 Windows 的网络接口和 IP 地址,IPv6 也随之继承。考虑到桥接模式已被弃用且配置繁琐,除非你有必须使用桥接的特定理由(例如需要为 WSL 分配静态 IP),否则建议直接采用镜像模式。检查是否获得了与 Windows 同网段的 IPv4 地址,以及一个非。的值必须与第一步中创建的交换机名称。用于显式开启 IPv6 支持。开头的全局 IPv6 地址。然后重新打开 WSL 终端。然后重启 WSL 或电脑。

2026-10-24 21:07:33 233

原创 PMTU 探测及无效ICMP报文

MTU探测过程中发现,会有回无效ICMP报文的情况,导致Linux直接将缓存PMTU置为552,最低MTU,然后触发EMSGSIZE错误,最终发送失败。可以通过给socket设置 UTP_PO_MTU_PROBE 标志解决,会跳过缓存PMTU,将包发出去,但是网卡MTU大小会限制。

2026-09-17 16:50:44 20

原创 Windows C++ 跨 CRT 内存管理与安全释放

如果你编写的 DLL 是作为第三方 SDK 提供给外部开发者使用,你无法预知、也无法强求调用方使用何种编译选项(对方可能用/MT,也可能用别的编译器)。此时,应遵循**“谁申请,谁释放”**的闭环原则,严格禁止调用方直接对你传出的指针执行free或delete// MySDK.h (提供给用户的头文件)__declspec。

2026-05-28 16:36:59 439

原创 VSCode C++ clang-format

【代码】VSCode C++ clang-format。

2026-05-26 17:00:53 28

原创 Kademlia DHT 分布式哈希表

Multihash 不是“先算 MD5 再算 SHA-1”的混合哈希,而是一种。

2026-05-26 16:36:47 414

原创 libutp 性能分析总结

心血来潮,看到lsquic后就想模仿着写个可以用于P2P的安全传输协议,libutp诞生了,诞生之初还是Ai没起步的时候,那个时候翻看lsquic源码,阅读各种bbr文档,然后自己做设计,写代码,时间就这样零零散散的过去了。后来AI起来了,我也学会了偷懒,我做设计让AI审核,给出优缺点,然后在对比lsquic,总体来说还是比较顺畅的,后面就是代码实现,AI起初还是很生涩,然后就又零零散散的实现功能,到此已经完全实现libutp,协议已经落实,除非出现什么安全或是性能问题,不会大改。

2026-05-12 14:16:52 391

原创 听歌识曲 API

通过谷歌插件逆向而来,这个没有请求次数限制。

2026-03-02 10:18:09 283

原创 TCP P2P打洞流程

2026-02-02 10:18:20 108

原创 VSCode Remote-SSH 连接Mac卡在初始化VSCode

文件中,但是关闭后再次打开就一直卡在初始化VSCode,虽然可以通过开启。保存的密钥,确认可正常连接才使用这种方式。优点就是不影响其他终端的连接。来解决,但是一不小心把终端删了就得重连,比较麻烦,后来尝试删除。暂时找不到原因,第一次配置后输入密码正常登录,然后密钥保存到。在.ssh/config指定主机配置下添加下面两行。

2026-01-26 15:41:13 158

原创 oh-my-zsh robbyrussell主题 修改

【代码】oh-my-zsh robbyrussell主题 修改。

2026-01-26 10:58:22 89

原创 MSS Clamping (MSS Adjustment)

从这可以看出,TCP的友好性很强,为了TCP能稳定发送和接收,直接对TCP数据包进行修改,以避免MTU黑洞的形成。本地将MTU调大,本想看下TCP是如何进行MTU黑洞探测的,但是两端抓包发现MSS被篡改了。可以看到发送的时候是1460MSS,但是收包确实是1412。内网机器向公网IP发送数据。

2026-01-08 18:07:16 279

原创 Centos 7编译musl

【代码】Centos 7编译musl。

2026-01-05 16:51:08 419

原创 套接字跨平台接口

【代码】套接字跨平台接口。

2025-12-08 11:13:07 738

原创 UDP GSO + sendmmsg加速数据发送示例

【代码】UDP GSO + sendmmsg加速数据发送示例。

2025-11-26 15:19:55 147

原创 UDP GRO GSO

重点关注以下两个字段。

2025-11-07 11:41:40 238

原创 lsquic + boringssl编译

【代码】lsquic + boringssl编译。

2025-09-08 16:01:12 205

原创 ICMP Fragmentation needed抓包实例

并且响应的报文最大字节是576,组成内容为 IP头部(20) + ICMP头部(8) + 不分片包的IP头部(20) + 不分片包的TCP头部(20) + 不分片包的剩余数据(508)IPv4 以太网最小MTU是576,故当包设置不分片并且超过交换机最大MTU时会响应ICMP Fragmentation needed报文。

2025-03-04 10:14:17 631

原创 PMTUD By UDP

【代码】PMTUD By UDP。

2025-02-13 10:58:04 511

原创 C++替代标识符

【代码】C++替代标识符。

2024-12-17 16:35:48 195

原创 IPhone 端口使用

https://support.apple.com/en-us/103229

2024-11-27 19:51:56 1498

原创 jemalloc替换标准库 malloc等函数的三种方式

这种做法是侵入式的,如果没有jemalloc库将无法启动程序,另外编译代码时需要设置。可以做到无侵入式替换,只需要在运行程序前设置。侵入式的,并且存在一定的不安全性。

2024-10-28 17:45:16 1099

原创 TCP simultaneous open测试

流程梳理:客户端A (127.0.0.1:12999)、客户端B(127.0.0.1:13999)经过多次测试,延迟 5 - 20 微秒的概率会增大,如tcpdump的图,12999发送。公网环境存在传输时间,如果同时发送理论上能连接上的概率更大。状态,否则就会因为是客户端性质而收到RST信号。由于两个套接字是客户端性质,必须保证同时处于。状态,此时B在延迟1ms后发送。,间隔了 23 微秒。

2024-10-25 18:19:08 503

原创 golang 字符串浅析

a和b所指向的字符串的地址在只读段,故当放开21行尝试修改内存时,会触发。查看程序在linux的内存分布。信号,导致程序异常结束。

2024-09-12 16:51:59 659

转载 【CentOS 7更换为阿里云源】

【代码】【CentOS 7更换为阿里云源】

2024-08-30 14:59:34 1594

原创 WSL迁移到其他盘

【代码】WSL迁移到其他盘。

2024-08-27 16:11:21 378

原创 Linux 调用std::call_once崩溃问题

判断是否支持多线程,弱引用意味着如果在链接时找不到 __pthread_key_create,这个引用不会导致链接错误,而是会被替换为 NULL 或者其他默认行为。但是使用-lpthread会发现它链接不上,-l只影响链接阶段,让其在pthread找到使用的符号文件,如果没有找到,则忽略-lpthread。其实问题就出现在有没有链接pthread库,gcc使用的pthread_once函数执行,故需要链接pthread库。没有链接编译时也不会报错,运行时异常描述也毫无作用,无法分析。

2024-08-13 12:01:55 529

原创 C++ enum class实现& | ^ ~等操作

【代码】C++ enum class实现& | ^ ~等操作。

2024-07-29 12:20:49 329

原创 全局静态变量、全局变量以及atexit回调的执行顺序

【代码】全局静态变量、全局变量以及atexit回调的执行顺序。

2024-06-30 16:28:05 356

原创 liburing和Linux io_uring源码阅读

此源文件内部调用liburing相关函数包含。篇幅过长,走不到的地方将会对其进行裁剪。以此为起点,阅读内核代码。

2024-06-27 18:23:39 885

原创 纤程与协程以及有栈协程和无栈协程的区别

无栈协程的做法靠的是C语言特性switch case嵌套do while,这一做法也被称作duff device(达夫设备),通过Switch跳转至上次运行的地方,当下程序的运行需要依赖寄存器,函数执行过程中如何跳转到其他函数,在没有协程的情况下可通过return,直接调用其他函数实现,但这中做法无法恢复执行原来的函数。2、协程是语言级别的,如go,rust,C#等提供的协程,c++如libco,libaco,boost::coroutine等等。,但是在概念上,两者是有区别的。已进行详细描述,不在赘述。

2024-06-22 10:21:17 733

原创 如何在没有头文件的情况下调用动态库的类的私有成员函数

所以需要使用dlsym获取到地址,但是g++在编译时会对函数名称进行修改,如上所示。故传递时需要传修改后的名字。然这么写在编译时确实没问题,但是动态加载的情况下又没有类的头文件,则无法这么写,因为无法确定函数的地址。注意:以上不涉及虚函数时可正常使用,当存在虚函数时,会存在虚函数表,无法确定被调用函数真正的地址。另一方面,类的成员函数即使在书写时无参,那么编译后其实也存在参数的,即类的this。普通函数的调用方式为直接调用,如createClass。所以在生命函数时将其声明为。调用也就和普通函数一致。

2024-05-11 13:14:42 1264

原创 libiconv转码

【代码】libiconv转码。

2024-02-05 18:57:39 303

原创 malloc(0)

【代码】malloc(0)

2024-01-29 18:17:33 275

原创 c++和qml数据传递

【代码】c++和qml数据传递。

2024-01-24 11:37:41 672

原创 范围for循环依赖begin和end函数

无论标准库还是其他库,多余begin和end函数的处理都用于迭代器的实现,而迭代器又要求使用过程中不能修改原有结构。所以在范围for循环中,不能删除和插入数据。否则,极易产生崩溃问题。如果需要在循环过程中修改结构,可以自己使用迭代器进行遍历。修改begin和end函数名后再次编译,报出以下错误。

2024-01-18 10:46:26 584

原创 git常用命令总结

/ 使用以下命令(请将 <commit_hash> 替换为之前找到的SHA值, <directory_path> 替换为被删除的文件夹路径)// 将远程主机 origin 的 master 分支拉取过来,与本地的 branch 分支合并。// 将dev分支代码合并到当前所在分支,冲突后使用git status命令查看冲突。// 查看删除前的Git日志记录,找到删除该目录前的最后一次提交。// 如果远程分支是与当前分支合并,则冒号后面的部分可以省略。// 列出远程存在的分支。// 删除name分支。

2023-12-09 20:12:23 573

原创 安装其他版本gcc的办法

切换到国内的源是因为国内镜像下载速度快, 并一个原因是可能不存在想要的gcc版本。会看到各个版本的gcc, 选择自己想安装, 不存在则切换镜像源。通过以上指令可以查看有哪些gcc版本可供下载。从gcc.txt中搜索。在此我选择阿里云的源。

2023-12-09 19:44:17 677

原创 frp V0.52.3 搭建

的配置文件,以下12000、8500需要在云服务器中的防火墙中开放tcp。以下12300、12400需要在云服务器中的防火墙中开放tcp。此版本暂时没有windows的,想在windows使用请下载。客户端同样,只不过修改路径及配置文件即可。配置完后先在服务器启动,后启动客户端。以下是使用finalshell演示。随便使用一个ssh工具登录到。输入内网机子的用户名和密码即可。

2023-11-25 12:28:27 1583

原创 gcc标准库行为细则

有个16字节栈区空间,假如写入的字节数不超过15,是存放在栈上的,不会malloc内存。作用是修改当前字符串长度,会扩容但不会缩小空间,想要缩小空间可在resize后调用。需要注意的是join和detach都会抛出异常,并且都是线程不安全的,会对。函数会修改长度变量还会将首个字符初始化。初始化成某个值要看编译器的行为。未采用读时共享写时复制的思想。即会对原来的内存拷贝一份。用的posix线程库接口,pthread。方法做到可接受任意参数和返回值的函数。实际上不会减少空间,比如本来。返回错误,然后抛出异常。

2023-11-12 15:05:37 344

TCP P2P打洞流程示意图

TCP P2P打洞流程示意图

2026-02-02

UDP GSO + sendmmsg加速数据发送示例

抓包

2025-11-26

sqlite源代码及编译好的动态库

sqlite源代码及编译好的动态库,debug,release,32位,64位都有,还有安装tcl的可执行程序 版本是3.38

2023-01-20

pthreads.zip

里面包含需要的pthread有关函数,还有配置,需要的话可以下载,我看网上说的配置有些不太全,那个路径是你们安装vs的路径,可能与我的不太一样,但include大都在tools下,找到这个就应该找到了

2019-10-10

MinGw-win64

前段时间一直在找这个工具,因为我的vs code要使用,后来安装了vs2013,就不再需要了,下面把它分享给大家,以供参考使用。第一次上传,还请多多包涵。

2019-05-05

install.zip

本资源所使用的的opencv版本为3.4.1+opencv_contrib-3.4.1,使用cmake和vs2017编译而成.解压后无需编译,放置环境变量,vs2017引入lib文件即可使用.不知在其他vs平台可否使用.亲测vs2017可以

2020-04-10

MinGW_920.zip

最新版的Mingw,里面附带自助下载器和已下载好的gcc和g++

2021-03-07

02Skin 动态库及静态库版本的使用含教学视频.7z

从网上搜到的Skin++的静态库与动态库,还有一些皮肤文件,其中包括详细的说明书和视频,希望有所帮助。

2019-09-22

空空如也

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

TA关注的人

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