
Src-shared
liulilittle
如果我只是恨你,那该多好;这一生,终究没能逃出这囚笼;也好,但愿此去,能化归烟云浮尘;逍遥天地,再无拘束。
展开
-
.NET 设置Socket 对象的“TFO”快速打开连接选项(跨平台兼容的)
.NET设置Socket对象的“TFO”快速打开连接选项(跨平台兼容的)原创 2022-07-17 17:22:27 · 155 阅读 · 0 评论 -
轻松修改 LwIP-TCP/IP-Stack-2.13-trunk 网络协议栈令其 tcp_listen accept 任何地址的 TCP_PCB 连接。
本文提供 LwIP C TCP/IP Stack 于 github 上面最新的提交代码的修改,令其可以支持一个 tcp_listen 监听TCP_PCB实例可以 Accept 并正确处理来自任何IP地址的TCP Connection。本文指示代码-github 版本信息:2022-02-12 GMT+8 16:40 提交版本,Support IPv4/IPv6,之所以用最新的 LwIP 代码版本,是因为官方解决了不少BUG,不用我们去单独解决,但本人必须说明,LwIP 一直都存在严重的 memory-l原创 2022-03-10 23:47:24 · 1700 阅读 · 0 评论 -
使用C/C++ 仿真实现 .NET LinkedList
linkedlist.hCXX99(native*)#ifndef LINKEDLIST_H#define LINKEDLIST_H#include <assert.h>template<typename T>class LinkedList;template<typename T>struct LinkedListNode{public: LinkedListNode<T>* Previous; LinkedListNod原创 2022-02-27 21:10:42 · 581 阅读 · 0 评论 -
Linux 从多个IPv4路由表内存文件之中获取默认网关IP地址
Linux 平台上面获取默认网关的办法很多,但是兼容性那真的就不用多说了,然而以下方法几乎所有的 Linux 系统上面都可以使用,答案则是通过读取 /proc/net/route 内存文件(IPv4 Routing Table)来检索默认的网关与其出站网卡设备。IPv4 路由表文件:/proc/net/routeIPv6 路由表文件:/proc/net/ipv6_route无论是 IPv4 或者 IPv6 路由表文件的格式都差不多的,具体可以 Google 上搜索GUN LINUX关于路...原创 2021-09-23 15:02:49 · 624 阅读 · 0 评论 -
剖析基于TUN/TAP虚拟网卡游戏加速器原理
我们知道最强大暴躁的游戏加速器由于某些原因是不能存在的,对于游戏加速器而言基于TUN/TAP虚拟网卡实现是最经济实惠的办法,这是由于基于LSP/NSP的方式会受到杀毒/带保护应用的反抗(inline-hook/driver-protect)导致无法为其进行加速,纵然我们为其打上了七八千上万块钱一年昂贵的 “CA内核EV代码数字证书”,这不见得可以全部通吃,而加速器服务商为了那些应用可以通过,则需要交 “保护费” 过下保护,这简直反自由,有一股回到了90年代黑道社会人猖獗的痛苦年代的感觉,而基于...原创 2020-11-14 22:25:24 · 8786 阅读 · 5 评论 -
C/C++ 11 offsetof、container_of 宏函数的实现(无限制编译器)
sample:struct abc{ int a; short b; int c;};int main(){ abc* a = new abc(); abc* b = container_of(&a->c, abc, c); return 0;}impl:#ifndef offseto...原创 2020-04-28 14:49:52 · 1210 阅读 · 0 评论 -
VC++ Interceptor 拦截器 (支持成员函数、全局函数)Ring3 - x86
Linux 在RING3环境下面几乎难以实现一个高效可靠可穿插在任何代码位置的拦截器(C/C++),RING3可用的办法都非常麻烦同时也很消耗性能,例如通过调试器写进程函数机器代码。 拦截器本质原理是通过在函数头插入 JMP 汇编实现的重定向(inline-HOOK),类似像通过C/C++ Linker(连接器)特性覆盖第三方函数的办法其局限性是很大,它不适用于也很难...原创 2020-04-26 23:11:23 · 542 阅读 · 0 评论 -
C/C++ PrintStackTrace(打印调试跟踪 / 捕获打印堆栈)Linux
usage:PrintStackTrace();impl:#define PrintStackTrace() \{ \ static con...原创 2020-04-18 10:41:11 · 2789 阅读 · 0 评论 -
保持与 .NET Framework Guid(全局唯一标识符)结构对称(及响应函数组)移植到 C/C++(Linux)
Guid.h#pragma once#include <string>#pragma pack(push, 1)class Guid // #include <uuid/uuid.h>{public: Guid(); Guid(const std::string& s); Guid(unsigned char* buffer,...原创 2020-04-17 10:47:04 · 197 阅读 · 0 评论 -
从.NET Framework之中摘要的 DateTime(日期时间)移植到 C/C++(Linux)
DateTime.h#pragma once#include <string>#ifndef NULL#define NULL 0#endif///////////////////////////////////////////////////////////////////////////* * 时间计量单位为:千万分之一秒,即一个周期100纳秒时。 *...原创 2020-04-17 10:42:06 · 285 阅读 · 0 评论 -
从.NET Framework之中摘要的Random(随机数算法)移植到C/C++
usage:Random random(time(NULL));// goprintf("%d\n", random.Next());printf("%d\n", random.Next(1, 1024));printf("%lf\n", random.NextDouble());impl: class Random { private: ...原创 2020-04-17 10:31:55 · 547 阅读 · 0 评论 -
C/C++ 11 try-catch-finally 扩展(函数式)
提供对于标准C/C++ 11完善的SEH(结构化异常处理)处理扩展1、try2、catch3、catch-when4、finallyusage:using ep::Try;class exceptionA : public std::exception {public: exceptionA(char const* const _Message) :exceptio...原创 2020-04-17 10:26:09 · 3023 阅读 · 2 评论 -
在 C/C++ 中实现委托(delegate)
相信使用过C#语言的人们,对于委托应该是记忆深刻,委托具有很多不错的特性,但最令人感到兴奋的是它可以简化很多复杂的开发同时具有低耦合与对象闭包的特性。 委托在C/C++中可以解决最直观的就有问题,一个是相同代码签名的成员函数与全局函数可以被一个委托调用的问题,在C/C++语言中我们在不借助委托的前提下,代码很难在不增加耦合与依赖的情况调用它们(无论这个依赖是隐式的还是显式的都会存在这个...原创 2019-02-05 13:18:09 · 11130 阅读 · 1 评论 -
C/C++ shared_ptr 的实现
shared_ptr(共享指针)在STA(单线程)的场景并没有太多的意义,而且它还会浪费一些内存与处理器效能,它的价值并不是体现在STA环境下的,在STA场景内,一个对象在“函数调用链”之间的传递形式为“自上向下 (A -> B -> C)”,约定对象的释放的“诱点”始终是可靠的,我们可以在“调用函数链”拥有此对象最上层的函数进行释放。 但是MTA(多线程)场景下按照STA场...原创 2018-11-19 15:24:49 · 2953 阅读 · 0 评论 -
C/C++ nvm::collections::List class -- shared
usage#include "object.h"#include "collections/HashSet.h"#include "collections/Dictionary.h"#include "collections/List.h"#include "gc/mempoll.h"#include "array.h"#include "string.h&qu原创 2018-11-13 10:36:18 · 292 阅读 · 0 评论 -
C/C++ nvm::collections::HashSet class -- shared
usage #include "object.h"#include "collections/HashSet.h"#include "collections/Dictionary.h"#include "gc/mempoll.h"using nvm::collections::HashSet;using nvm::collections::IEnumerator;int ma...原创 2018-11-05 11:14:38 · 191 阅读 · 0 评论 -
C/C++ nvm::threading::Interlocked class -- shared
usage /* usage */#include <stdio.h>#include "nvm.h"#include "threading/Interlocked.h"static nvm::Int32 g_globalAutoIncrnum = 0;using nvm::threading::Interlocked;int main(int argc...原创 2018-11-01 15:43:38 · 202 阅读 · 0 评论