自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 中国大陆IP段(含港澳)【2024-05-10】APNIC lasted 2024-05-10

1.0.1.0/241.0.2.0/231.0.8.0/211.1.0.0/241.1.2.0/231.1.4.0/221.1.8.0/241.1.9.0/241.2.0.0/231.2.2.0/241.2.4.0/241.2.5.0/241.2.6.0/231.2.8.0/241.2.9.0/241.3.0.0/161.4.1.0/241.4.2.0/23。

2024-05-10 13:41:08 141

原创 C++ 模板字典操作工具类

用来操作,map、unordered_map、hash_map 等字典类型集合,用这个单纯是为了代码阅读起来更好一点。

2024-05-10 13:37:22 40

原创 C++ NetworkToHostOrder、HostToNetworkOrder 模板函数

其作用类型:ntohl、htonl、ntohs、htons 函数的作用,因为要考虑兼容 int128、int64 等数据类型。IPV6 肯定是 int128 了,使用这两个函数可以帮助人们计算IPV6的地址范围等。

2024-05-10 13:32:48 60

原创 boost 1.76 版本及以下兼容实现:hash<boost::asio::ip::address_v4>、hash<boost::asio::ip::address_v6>、hash<boost:

为了保证 boost 库版本的代码兼容性,这是为了在多个平台上面跨平台编译的兼容性,所以我们通常需要去兼容打上这些补丁。

2024-05-10 13:30:39 31

原创 常见公共DNS服务器IP地址

【代码】常见公共DNS服务器IP地址。

2024-05-10 13:26:58 17

原创 C/C++ StringToAddress(字符串转 boost::asio::ip::address)

为什么不推荐 boost::asio::ip::address::from_string、boost::asio::ip::address::make_string 函数来把字符串转换为 ip 地址呢?这是因为有平台、编译器兼容性,在 android 平台上面,使用这两个函数会导致崩溃问题,在一些 clang 编译器上面也会导致崩溃问题。所以人们必须实现这两个函数。

2024-05-10 13:24:09 89

原创 C/C++ 协同程式切换潜在存在的一些致命性风险问题

A协同程序内部发起一个异步操作,并且 yield 让出CPU,但传入回调函数到异步操作内,异步操作失败,直接丢弃异步操作的上下文,而不驱动异步回调函数的调用,导致协同程序根本无法 resume,有非常多煞笔、智障、且偷懒,不是个人的东西,就很喜欢这么整,这种人是需要深恶痛绝的,即便是异步编程这样的下三滥行为都是不被允许的,试问:谁家会这么教育人这么干?这样的多核并行驱动架构,可以显著的提高整个应用系统的吞吐能力,至于多线程带来的复杂性,这并不可怕,合适的架构并不会导致这些致命性问题的产生。

2024-05-10 13:01:59 989

原创 VC++ PDH/性能计数器

PID=0,缺省为当前进程,但最好是获取当前进程ID传递进去,当然也可以选择其它进程的ID。

2024-05-10 12:20:54 48

原创 VC++ VARINAT(可变量类型)操作

提供可变数组封装、可变类型数值/字符串获取等。

2024-05-10 12:11:39 52

原创 VC++ DCOM BSTR字符串转 std::string 标准库字符串

BSTR 字符串转 std::string 字符串。std::string 字符串转 BSTR字符串。

2024-05-10 12:06:53 21

原创 VC++ 获取指定进程ID(PID)的父进程ID

通过查询进程的 PBI信息(进程基础信息)来获取该进程的父进程ID。PEB(进程环境信息)

2024-05-10 12:02:50 21

原创 VC++ FindAllFilesWithNoRecursive 函数(查找目录下的全部文件,但不要递归步入到子目录)

【代码】VC++ FindAllFilesWithNoRecursive 函数(查找目录下的全部文件,但不要递归步入到子目录)

2024-05-10 11:58:14 18

原创 VC++ SYSTEMTIME、FILETIME、ULONGLONG 类型相互转换

【代码】VC++ SYSTEMTIME、FILETIME、ULONGLONG 类型相互转换。

2024-05-10 11:56:37 26

原创 C++ 利用标准库多字节转宽字节字符

std::wstring_convert 模板来实现,它可能导致程序崩溃的风险,如果字符集不是 utf8、或 unicode 字符时。在 C/C++ 之中,通常建议使用:mbstowcs (C语言函数库)来实现多字节字符转宽字节字符,这是因为如果使用。举个例子:一些特殊的中文字符,可能没法编译为 unicode 字符,那么就会导致发生异常,而且必须是 utf8 编码。可通过:setlocale 设置地区函数影响。

2024-05-10 11:53:31 159

原创 VC++ 不适用 atlconv.h(ATL字符集转换)实现 A2W、W2A、_UnicodeToUtf8、_Utf8ToUnicode 函数

CP_ACP 为缺省当前系统所在的语言字符集的宏(可在系统地区/语言之中修改)操作系统内部通常只带对应地区/语言的字符集,其它地区/语言字符集需要安装的。932(为鬼子日文 shift_jis)936(为简体中文GBK字符集)详情:可以自行查阅代码页号。949(为阿西八韩文)950(为繁体中文)

2024-05-10 11:42:07 28

原创 C/C++ IPV6服务器socket绑定在::,接受ipv4链接(双栈)

5、使用 struct sockaddr_in6 结构接受套接字,而不是用缺省使用 “sockaddr”,否则 10014(WSAEFAULT)错误,并导致套接字句柄泄漏。1、 创建IPV6套接字。3、禁用仅限 IPV6。2、打开套接字可重用。

2024-05-08 10:48:04 184

原创 Microsoft Edge 浏览器始终会显示光标问题

这是因为打开了 Edge 的插入光标浏览功能,打开 Edge 浏览器,按下F7,可以启用或关闭该功能,关闭该功能后,就不会出现烦人的插入光标闪烁问题。

2024-05-06 18:55:00 102

原创 Linux mount 挂载出现疑难问题;mount can‘t find in /etc/fstab

命令全盘搜索一下,该文件是否被移动到其它目录里面去了,如果确认不是自己移动的,就把找到的 fstab 文件复制一份到 /etc/fstab 里面去,否则就 ln -s 建立软链接到 /etc/fstab。如果是文件你就删除它,并且在重建为目录类型,如果这样都无法解决,那么说明问题需要更进一步尝试分析处理。在尝试看看,如果还是不能解决,那么就要比这个步骤在深入一步进行处理,这就是个小问题来着,不用过于惊慌。检查 /etc/fstab 文件是否存在,如果不存在就需要用。保存文件并且退出,并且执行命令;

2024-05-02 13:33:21 540

原创 LINUX TCP/IP内核参数调优(适用于拉大流场景,但延迟、抖动会增大)

【代码】LINUX TCP/IP内核参数调优(适用于拉大流场景,但延迟、抖动会增大)

2024-05-02 12:13:11 363

原创 ubuntu 卸载docker

3、若你之前通过脚本安装了 Docker,那么还需要删除 Docker 的启动脚本。4、移除所有与docker相关的依赖包。2、删除所有相关的配置文件和数据目录。6、清除 iptables 规则。

2024-05-02 11:34:24 361 2

原创 C99 linkedlist 容器实现

【代码】C99 linkedlist 容器实现。

2024-04-27 19:38:57 441

原创 中国大陆IP段(含港澳)【2024-04-25】APNIC lasted 2024-04-25

1.0.1.0/241.0.2.0/231.0.8.0/211.1.0.0/241.1.2.0/231.1.4.0/221.1.8.0/241.1.9.0/241.2.0.0/231.2.2.0/241.2.4.0/241.2.5.0/241.2.6.0/231.2.8.0/241.2.9.0/241.3.0.0/161.4.1.0/241.4.2.0/23。

2024-04-25 23:11:47 249

原创 闲聊:最近想要做一个用在网络游戏领域的网络控制协议小玩具,大体聊聊构思的想法

但,我们通常预期目标都是为了减少网络抖动、只要产生丢包,那么网络抖动就会非常严重,而且在现代网络之中,因为路由跃点之间的不同,客户端到服务器之间的网络路由是随时波动的,即便路由没有变动,也会因为路由本身的QOS管理策略,导致帧的先后顺序发生改变(即乱序问题)产生抖动问题,因为若客户端需要排序,那么在收到来自未来帧时,是先缓存在接收方队列之中,等待确认帧(包)的到达,在这个空窗期就会产生抖动问题。我在上篇文中没有着重的探讨这个问题,而是说推迟确认(延迟1毫秒)都是为了解决,类似如这个SWS糊涂窗口问题。

2024-04-24 12:07:45 616

原创 如何正确设计 TCP/IP 流式应用层网络协议

在我多年打黑工的职业生涯之中,除了在盛大游戏出身的半个老师(做游戏服务器的)曾今深入的教过我,关于正确的 TCP/IP 流式应用层网络协议的设计理念,前往其它公司打黑工、包括一些的开源项目,见识到的 TCP/IP 应用层网络协议设计似乎都有一些潜在问题。正确的 TCP/IP 协议读入是片段读入的,而不是直接读入一个完整帧头,这是不正确的,因为你并不知道这个帧是否为伪造的,如果你完整读入,那么在这个帧头没有完整被读取完毕之前,程序都将处于 pending 状态,而持有的资源也没有办法得到释放。

2024-04-20 13:29:19 999

原创 Windows 平台上面管理服务器程式的高级 QoS 策略

在 Windows 平台,自进入 Windows Vista / Windows 2008 Server 开始就不允许用户通过,标准SOCKET API 接口来设置链路 QOS 策略了,但 Vista/7/2008/8 好歹对系统注册表解禁重启,还能用,但是 Windows 2012 RC2、Windows 8.1(build 9200)开始根本就不行,只能通过 QoS2 接口调用来设置。9、策略命随便写,DSCP值(0~63)写 26 就可以(它就是:FLASH 报文优先级)4、点击基于策略的 QoS。

2024-04-19 13:53:13 422 1

原创 C/C++ 性能非常高效的伪随机数算法实现

【代码】C/C++ 性能非常高效的伪随机数算法实现。

2024-04-18 16:08:28 116

原创 如何合理利用多个中国大陆小带宽服务器?

我们要做的轻量的控制算法,即:只需要保证帧的序及帧缓存积压的问题,就可以,另外我推荐用TCP/IP作为下一层,因为KCP这些协议不适合传输大包,它们是为了小包及时性设计的,所以可以容忍20~30%的带宽损失。但积压大量的帧缓存,可能会产生很高的网络延迟,这是控制协议的弊端,但是你还真的自己好好做下控制协议,若你不在自己这层控制,让UDP/IP的应用去自己去处理这些问题,它们的传输效率就会非常慢的。带宽退让是滑块窗口与重传这部分关联的算法,目的是为了平衡链路拥塞层度,这些可以用成熟现成的控制算法来实现它们。

2024-04-18 12:47:24 601

原创 Linux 软路由命令行配置(参考)

允许任何地址到任何地址的确认包和关联包通过。# 默认丢弃转发,所有内网流量不能访问外网卡。# 开放某个ip的转发,允许上网。# 仅允许访问223.5.5.5。# SNAT 源地址转换。# 仅允许访问80端口。

2024-04-13 14:24:16 285

原创 Linux 上面模拟网络丢包率(命令)

1、模拟20%入站丢包率。1、模拟30%入站丢包率。3、模拟20%出站丢包率。4、模拟30%出站丢包率。

2024-04-13 13:21:14 266

原创 openppp2 组网(虚拟子网)

但是它可以更快,在网络延迟很大的情况下,亦可获得非常不错的效果,类似它们在40 PING延迟下,想要吞吐三百兆都是很困难的,但40 PING延迟上,openppp2 是仍旧是可以网络千兆上行吞吐的。openppp2 可被应用于网络游戏加速,人们在技术这块足够的情况下,可自行搭建配置并剔除 “网易UU”、“迅游”、“奇游”、“雷电” 这些网络游戏加速器的使用。2、在运行 openppp2 客户适配器命令行上,打开 --tun-vnet=yes 子网选项(CLI接口)在查阅本文之前,务必:查阅以下关联文章。

2024-04-12 11:10:35 1006

原创 openppp2 开源项目编译方法

重新 cmake 一下,在 make 就可以编译 io_uring 版本了,但需要注意一点,在 Ubuntu 18.04 LTS 上面需要修改内核版本定义的宏,以支持 io_uring 版本程式的编译,否则无法编译,这个在上面给出的参考文献之中已经明确提到了。准备就绪之后,修改 openppp2 的 CMakeFiles.txt 文件,但需要注意:liburing 库必须安装到操作系统,或者你可以自行编辑 liburing 库在 openppp2 CMakeFiles.txt 配置之中的依赖设置。

2024-04-12 10:11:02 754

原创 C/C++ 关于 terminate called without an active exception(问题)

对于 std::thread,类为析构时,线程状态仍处于可 joinable() 状态,导致的问题,在 C/C++ 之中,STL标准库为了确保 std::thread 的一些安全性,用户必须显示的 detach、join 处理并释放线程持有状态。在 C/C++ 之中这类问题,主要出现在STL两个BCL基础类库使用上面,std::mutex、std::thread,它是指在析构时,某些行为没有被正确处理导致的。.lock() 执行后,没有成对执行 .unlock() 函数。

2024-04-12 09:28:08 146

原创 C/C++ 配置 jemalloc 的一些选项,处理一些疑似内存泄漏的问题。

并且每个线程都会单独管理 arena,每个 arena 都有一个 tick 引用计数,当引用计数不为0时,arena 不会自动释放,那么看上去似乎发生内存泄漏了,除非适用 arena 的线程退出。dirty_decay_ms、muzzy_decay_ms 两个值均设置为0,可以减少 jemalloc 对于持续内存的占用率,否则会易于产生疑似内存泄漏的一些现象,令人感到困惑。muzzy_decay_ms 两个值均被设置为0,这代表或许并不存在脏页释放延迟的问题,那么大家直接设置为0,就可以了。

2024-04-09 09:21:12 632 1

原创 C/C++ 标准库 std::vector、std::array、原生静态数组 的区别有哪些?

另外若无必要,不要首选 std::vector 容器,它可能带来一定的性能上面的风险问题,若必须使用 std::vector 容器,那么可以首选自行实现一个适用于业务场景调优的 vector 容器出来,但若 vector 频繁擦写的数量并不多时,可以考虑直接适用它。但实际上在 release 上面会被特别优化的,C/C++ 就喜欢这么玩,标准库好多东西,在最终编译的时候都会有特殊的编译器实现跟优化的,有时候 C/C++ 标准库跟编译器都有点玄学,C语言这块就比较好,不搞那么多令人困惑的东西。

2024-04-08 15:28:57 367 1

原创 初识开源项目 openppp2

2、OPENPP2 为控制台窗口程式,开源项目的作者,并不提供移动端APP产品,仅提供嵌入式框架类库基本支援,想要移动端APP的人们,需自行定制构建并且实现它,但这与开源维护作者们之间毫无关联。该工具链对多数人并不友好,上手门槛相对高,工具作者本人,反对并抵制普通及一般性非专业用户,不欢迎有前科、或心怀不轨、愚不可及的人们适用它,否则产生的一切后果自负,工具链作者们概不负责。2.2、Linux 平台上面,Intel Atom™ X5 Z8300/Z8350,启用SSMT技术的情况下,全核四百兆吞吐速度。

2024-04-08 14:46:59 441

原创 删除我的电脑中“C盘瘦身专家”图标(流氓软件)

找到包含 “C盘瘦身专家” 得注册表项,然后直接删除,刷新桌面浏览器,就可以看到图标被删除了,国内做好软件不行,搞流氓软件倒是有一绝,正常从市场安装软件都得中招,玛德。计算机\HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\MyComputer。用联想电脑管家强制先卸载掉该软件,然后以管理员身份打开注册表(regedit)

2024-04-08 12:00:32 417

原创 C/C++ std::list 插入时即整理顺序(ASC升序)

根据 packet_seq 可以得出,插入位置的最短距离,更偏向左侧、还是右侧,该函数实现仅供参考,若需要多线程访问,需要确保 “代码临界区同步问题”。下面是一个随机的 packet(帧)插入函数,ASC升序,按 “packet_seq” 来控制成员之间的顺序,该函数优化了,倾向头、倾向尾。

2024-04-07 19:25:50 511

原创 C/C++ 查泄漏得一些方法

有一些是用三方工具来查得,但这个需要编译debug,带上符号信息得版本才可以,就很麻烦,而且只能查 new 传入符号信息得数据,有一些是hook形式,需要在通过这些工具引导运行,反正不好用就是了。退出程序得时候调用下,把当前内存对象都打印下,看看那些是产生了泄漏了,这个可以做成一个接口,如果是做服务器程序得话,方法这块都差不多,内存泄漏不这么搞,纯靠猜是很难解决问题得,也没得效率。在 C/C++ 之中内存泄漏一直是个老大难问题,但索性用于辅助定位查找得解决方案也不少,虽然没那么详细,但总比没有要好的多。

2024-04-06 21:35:42 402

原创 VC++ Windows 平台通过QOS2库函数设置Socket DSCP(IP_TOS)参数选项

用法是这样的,每个TCP在建立链接后,立即创建这个QOSS的实例,当然也可以在链接前,但在连接前有一定限制就是说,你必须在连接前把IP+PORT地址传进去,链接建立后在创建QOS就不需要传入IP+PORT地址。本体提供的函数实现,只能对于TCP生效,UDP没法生效,看文档没搞明白,有了解UDP怎么设置DSCP的童鞋,可以在评论区给予答复。同时,在关联的TCP链接关闭时需要销毁这个,否则就会产生QOS2内核句柄资源泄漏。

2024-04-04 18:07:35 595

原创 VC++、GCC、CLANG,INT128有符号整数编译器关键字

即:__m128,当然也有编译器限制,在VC++ 之中仅支持 X86/X64 处理器平台,且该平台CPU必须支持SSE2、SMID2指令集。对于 GUN/CLANG 上面适用 INT128 其编译器关键字为:__int128_t ,32位平台均不可用,目前仅限于64位平台。注意INT128为目标平台扩展关键字,不属于C/C++语言本身支持特性,每个C/C++编译器平台支持上都略有不同,甚至不支持。

2024-03-31 20:46:49 476

serverspeeder2 锐速(TCP/IP单边加速)

支持:“Windows XP/2003” 操作系统平台(含:32/64位程序)

2022-09-20

serverspeeder 锐速

serverspeeder 锐速, 一:支持 “Windows Server 2016/2012/2008” x86_64 服务器平台。 二:支持 “Windows Desktop 7/8” x86_64 桌面平台

2022-09-20

sscli20.zip

Microsoft .NET Framework 2.0 FCL/BCL/RUNTIME,.NET虚拟机实现源代码!

2022-09-20

空空如也

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

TA关注的人

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