自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

码客 卢益贵 ygluu

匠心隐于形 WX/QQ: 48092788

  • 博客(57)
  • 资源 (35)
  • 收藏
  • 关注

原创 一个单生产-多消费模式下无锁方案(ygluu/卢益贵)

本文介绍一个“单生产(低频)-多消费”模式下的无锁哈希类方案,这个方案的性能优于golang的RWMutex,因为它永远不会因为“写”而导致与消费者发生碰撞而导致互斥同步。关键词:生产者-消费者模型、无锁队列、golang、RWMutex。一个单生产-多消费模式下无锁方案。

2024-03-23 19:07:33 428

原创 游戏服务端配置“热更”及“秒启动”终极方案(golang/ygluu/卢益贵)

众所周知,游戏服务端配置信息热更有几大问题(非lua架构):1、因配置对象的指针被场景对象引用而导致热更复杂度提高2、信息量大的配置表热更导致游戏卡顿、玩家闪断3、一般重载后的配置信息仅影响重载后新创建的对应场景对象,不能影响已存在的场景对象4、在高度解耦的模块化开发模式下导致热更复杂度提高本示例代码将使用通用方法来演示在“高度解耦、模块化、模板化”的开发模式下对上述问题的解决方案,并提出游戏服务器秒启动的辅助方案。同时给出了完整示例代码及下载连接(见后)。

2024-03-17 02:10:58 988 1

原创 软件开发团队的管理要素

软件开发团队的管理要素

2023-03-07 19:25:52 541 2

原创 【数据中台战略】可配置化数学建模的应用案例图解

无论再深奥的数学理论,数学建模最终产物是:数学公式和流程步骤。这是程序能理解和执行的数学模型。我们在数学建模的生产活动中,数学模型经常需要修改和调参,甚至推到重新建模,面对修改代码繁琐代价,痛点是:如何将数学建模活动独立在代码之外。本文将以前述的机车系统经验为基础并加以提炼,阐述可配置化数学建模。

2022-11-06 19:05:46 507

原创 插件式模块化软件框架的思想图解三(数据交换系统和条件系统)

文本主要介绍独立模块之间用于数据交换的数据交换系统、条件系统和公式系统组成的数据平台的设计思想,以及介绍围绕数据平台的生产-消费模型。

2022-05-15 22:54:00 1284

原创 插件式模块化软件框架的思想图解二(案例篇)

一、前言本人推崇模块化设计,不是基于技术深度,而是基于管理高度(如何在多变的项目需求中提高开发效率、缩短开发周期)。本文将通过一个《火车在途实时信息系统》的火车实时和历史轨迹显示部分的简要阐述来“插件式模块化软件框架思想”的理解和应用(实际项目设计要复杂得多)。本文涉及项目截图均已向社会公众公开,本文仅阐述行业惯例或通用做法部分,不涉及商业秘密和专利核心技术。阅读本文前最好先阅读本人上一篇博文《插件式模块化软件框架的思想图解一(框架篇)》:https://blog.csdn.net/gues

2021-08-29 20:09:35 1225

原创 C++高效低延时有锁队列测试程序

C++高效低延时有锁队列测试程序, 经过多次优化之后性能达到了最大化:10年华硕老本测试,队列速率1000万+,低延时(Pending数量少)。下载地址:https://download.csdn.net/download/GuestCode/21098156图1图2优化前通过满队列方式以提升队列通过率(图3),优化之后队列积压明显减少通过率还略有提升(图1):图3...

2021-08-15 21:19:06 377

原创 插件式模块化软件框架的思想图解一(框架篇)

插件化(模块化)软件框架思想的总结图解(码客/卢益贵)关键字:插件化 模块化 软件框架 C++ Golang Rust Delphi一、前述关于模块化的好处在此省略1000字,网络资源很多不再赘述。从本人20多年多个行业众多项目经历来说,无论是一个人、两个人开发,还是多人协同开发,模块化在实际应用中有非常高的实效性。本文讨论的是源代码插件化框架思想,而非二进制Dll之类的插件化。如果没有特别说明,本文提及的插件和模块是同一个实体概念。二、模块化原则1、高度独立要达到高度独立必须实行高

2021-08-15 02:37:02 3828 1

原创 git(gitlab)子模块功能在团队协同开发和生产环境中的应用(git,gitlab,TortoiseGit,CI/CD,Jenkins,docker-compose,分支合并,开发环境,测试环境)

git(gitlab)子模块功能在团队协同开发和生产环境中的应用目录git(gitlab)子模块功能在团队协同开发和生产环境中的应用一、前言二、先决条件三、创建gitlab项目(项目管理员操作)四、关联子模块(项目管理员操作)五、开发环境提交代码(团队开发人员操作)六、生产或测试环境合并代码(项目管理员操作)一、前言gitlab不仅能够提供便捷的CI/CD流程控制的方式,也能为开发团队提供便捷的版本库控制方式。在多人协同开发时,如果一个大型的开发...

2020-08-14 21:49:07 2185

原创 小团队大开发:iogo微服务集群框架(golang/grpc/http/protobuf/etcd/freetoo/5G物联网/服务发现/负载均衡/一致性哈希/码客/卢益贵)

小团队大开发:iogo微服务集群框架KeyWord: iogo,golang,grpc,protobuf,etcd,zookeeper,microservice,distributed lock,service discovery,cluster,load balancing,k8s,docker,redis,mamcache,5G物联网,微服务框架,分布式集群,分布式锁,分布式文件系统,分布式数据库,高速缓存集群,服务发现,负载均衡,容器编排,一致性哈希目录小团队大开发:iogo微..

2020-08-12 17:18:43 1552

原创 一个人写一个集群:基于GRPC的golang微服务框架iogo(grpc/protobuf/etcd/freetoo/码客 卢益贵)

一个人写一个集群:基于GRPC的golang微服务框架iogokeyword:iogo,golang,grpc,protobuf,etcd,zookeeper,microservice,distributed lock,service discovery,cluster,load balancing,微服务,分布式锁,服务发现,负载均衡1 iogo的初衷iogo微服务框架是对高效的远程...

2019-01-26 22:33:59 1193

原创 一键部署高可用etcd集群(TLS,ubuntu)(freetoo、码客、卢益贵)

一键部署高可用etcd集群(TLS,ubuntu)(freetoo、码客、卢益贵) 这是一个便捷高效的部署高可用etcd集群(TLS)的脚本工具。下载链接:https://download.csdn.net/download/guestcode/10798474一、【功能说明】 1、自动安装cfssl 2、一键生成ssl秘钥 3、一键安装到目标主机 二、【使用方...

2018-11-21 15:09:35 587

原创 项目管理级别的自动万能通用makefile模板:t-makefile (freetoo)

 项目管理级别的自动万能通用makefile模板:t-makefile (freetoo) t-makefile源码及示例项目下载链接(会不定期更新):https://github.com/freetoo/t-makefile 一、t-makefile解决的痛点和难点往往在一个项目工程中,目录名改变了、子目录变更位置了都需要去修改makefile,目录繁多的时候修改ma...

2018-07-27 00:25:36 1447

原创 t-makefile:自动万能通用makefile模板(freetoo 码客 卢益贵)

t-makefile:自动万能通用makefile模板(freetoo 码客 卢益贵) 关键字: make makefile shell find grep wildcard notdir patsubst findstring wordlist suffix foreach gcc g++ c++11 嵌入脚本 静态链接库 动态链接库 静态动态混合编译链接 语法 内嵌函数 函数嵌套执行 ...

2018-07-22 11:02:24 627

原创 自动万能makefile(linux ubuntu gcc/g++),让makefile的编写不在烦人

自动万能makefile(linux ubuntu gcc/g++),让makefile的编写不在烦人keyword: wildcard notdir patsubst findstring wordlist suffix foreach 功能:     1、自动以makefile的父目录名为Target文件名称     2、自动搜索源码文件(含子目录)     3、自动搜索头...

2018-05-31 21:40:27 1631

转载 共享windows文件夹给VMware的ubuntu server虚拟机

共享windows文件夹给VMware的ubuntu server虚拟机 把宿主机的文件夹共享给VMware的ubuntu server虚拟机,需要安装VMware tools工具包。1、在VMWare设置共享文件夹:a、先关闭虚拟机b、在VMware虚拟机窗口,选择菜单虚拟机->设置->选项->共享文件夹c、在共享文件页面选择“添加”增加共享文件夹d、并勾选...

2018-05-11 08:01:46 1501

原创 Ubuntu 14.04 + xRDP + Xfce 实现Windows远程桌面连接

Ubuntu 14.04 + xRDP + Xfce 实现Windows远程桌面连接1. 安装xRDP及vncserversudo apt-get install xrdpsudo apt-get install vnc4server tightvncserver 2. 安装Xfce桌面环境sudo apt-get install xubuntu-desk

2017-02-12 02:59:15 3583 1

原创 一个极其简单的用golang net写的tcpip echoserver

一个极其简单的用golang net写的tcpip echoserver 关键字:linux golang tcpip echoserver 虽然然效率不是很理想,但是可以给初学者参考package mainimport ( "fmt" "net" "os" "runtime")func doEcho(c net.Conn) { defer

2015-12-06 13:17:16 2414

原创 linux安装nginx并设置https(openssl)

一、安装依赖包1.$sudo apt-get install openssl   或者$sudo apt-get install libssl-dev2.$sudo apt-get install libpcre3 libpcre3-dev二、安装nginx1.$cd /usr/local/src2.sudo wget http://nginx.org/download

2015-12-06 13:08:08 21920

原创 IOKING真正无锁服务器引擎之消息引擎模块Demo(no-lock)

关键词:no-lock interlocked lock-free tcp/ip socket server engine epoll iocp server out-of-orderexecution无锁 原子锁 原子操作 原子指令 锁无关 开放锁 通讯服务器 引擎 高并发 大数据 搜索引擎 完成端口服务器 cpu乱序并行执行 内存栅栏IOKING 真正无锁服务器引擎之消

2015-08-27 23:06:47 3708

原创 linux(centos/ubuntu)使用subversion

1、安装:sudo apt-get install subversion subversion2、从远程检出到本地,如果不指定DestPath,默认到当前路径svn co svn co svn://192.168.1.168/wuliu/code DestPath3、上传到远程,CD到要上传的目录下:将新建的文件或文件夹加入到版本控制svn add × 提交所有

2015-04-26 18:09:42 1334

原创 linux(centos/ubuntu)下支持exFat格式

1、sudo add-apt-repository ppa:relan/exfat2、sudo apt-get update3、sudo apt-get install exfat-utils

2015-04-24 21:23:40 2992

原创 linux下安装sublime_text (linux(centos ubuntu) install sublime_text)

1、下载并安装 Sublime Text 3,下载地址:http://www.sublimetext.com/32、给 Sublime Text 3 安装 Package Control:打开 Sublime Text 3,按下 Ctrl + `(反引号,Tab 键上面),输入如下内容并回车:import urllib.request,os; pf = ‘Packa

2015-04-24 21:20:23 3870

原创 linux下安装mongodb (linux(centos ubuntu) install mongo)

1、打开并编辑文件:sudo gedit /etc/apt/sources.list 2、 在最后一行加入:  deb http://downloads-distro.mongodb.org/repo/ubuntu-upstart dist 10gen  保存退出 3、加入GPG Key(终端命令): sudo apt-key adv --keyserver k

2015-04-24 21:12:18 1504

原创 linux下安装redis(linux(centos/ubuntu) install redis)

一、检查是否安装gcc和tcl,没有的要安装: yum install gcc-c++ yum install -y tcl  二、下载redis: wget http://download.redis.io/redis-stable.tar.gz  三、解压redis: tar xvzf redis-stable.tar.gz  四、编译redis:

2015-04-24 21:07:18 2052

原创 linux下安装beego(linux(centos/ubuntu) install beego)

1、下载安装:$ go get github.com/astaxie/beego $ go get github.com/beego/bee 2、将 $GOPATH/bin 加入到你的 $PATH 变量中。3、检测安装:$ cd $GOPATH/src $ bee new hello $ cd hello $ bee run hello

2015-04-24 17:52:38 8400

原创 linux下安装gocode(linux(centos/ubuntu) install gocode)

1、安装gitsudo apt-get install git2、下载gocodego get github.com/nsf/gocode3、安装gocodego install github.com/nsf/gocode

2015-04-24 17:42:55 4509

原创 linux下安装golang(linux(centos/ubuntu) install golang)

1、安装在devtoolsmkdir $HOME/devtoolstar -xzf go1.4.2.linux-amd64.tar.gz -C $HOME/devtools2、增加环境变量:sudo gedit /etc/profile在打开的文件后面加export GOARCH=amd64export GOOS=linuxexport GOROOT

2015-04-24 17:37:46 4390

原创 'IOKING' TCP Transmission Server Engine ('云猴'©TCP通讯服务器引擎)(预告版)

关键词:IOKING IOCP TCP  Transmission Server Engine Lock Free Interlocked云猴完成端口TCP通讯服务器引擎 无锁 原子锁(函数)'IOKING' TCP Transmission Server Engine ('云猴'©TCP通讯服务器引擎)(预告版)下载连接:http://download.csd

2014-06-10 02:06:14 3910 1

原创 游戏中防止加速的一种方法

关键字:游戏 服务器 客户端 防外挂加速游戏当中有些动作要求必须间隔一定时间才能执行,比如跑步等动作。如果仅在客户端限制的话往往都被加速器(外挂)所破坏。本文假定客户端必须间隔400毫秒的数据包传输,提出服务器端解决加速问题的一种方法。一、客户端发送若干数据包t1=tc;Send(…);t2=tc;Send(…);…t6=tc;Send(

2014-02-09 12:40:13 9068

原创 服务器端沾包处理的copy效率问题

本文说的基于数据包(有头尾标示并且独立被处理的数据区)的高效通信要求下,阅读需要有一定的沾包处理经验。沾包是tcp流传输的一个特点,形成沾包的主要原因是,数据包小于接收缓冲时,对方不断发生数据包,接受方连续接收数据放入接收缓冲导致的。要想不产生沾包现像,可以采用一发一答方式,就是我发送一个数据包过去之后,对方应答了再发送下一个数据包;还有就是规定数据包头2个字节(假定)代表数据包长度,每次先接

2014-01-16 02:47:58 4742

原创 G-Sockets2.5 发布说明

关键字:Iocp Tcp Server 完成端口服务器 压力测试工具 回射服务器 内存加载DLL下载链接:http://blog.csdn.net/guestcode/article/details/7538636更新说明:1、修补发送GBuf可能导致乱序的Bug,2、Delphi版增加内存加载DLL的功能,3、增加授权证书功能,未经授权的不保证其能

2014-01-13 05:18:29 3627

原创 自扩充的无锁(Lock-Free)并发环形队列算法

注:这是好早就发资源上的了,现在看起来似乎有更好的方法,先发帖吧,有兴趣的可讨论再做修改。文档下载:http://download.csdn.net/download/guestcode/3022300自扩充的Lock-Free并发环形队列算法卢益贵 中国广西南宁市QQ:48092788  E-Mail: [email protected] Blog:http:/

2013-09-23 01:44:48 5071

原创 沉默3年了,该写点什么呢——什么是网络通讯?

确确的说,应该是“什么是tcp通讯”。我不说严谨的学术定义,其实我那学历水平也说不出来,嘿嘿。网络通讯嘛,其实两个socket连接就OK了,是吗?!过去这么多年,处理解决了很多tcp通讯的问题,是应该写点东西了,要不然这个博客就沉陷下去了。先看看这小段代码:......Send(s, buf1, len1, 0);Send(s, buf2, len2, 0);C

2013-09-23 01:32:44 3780 6

原创 Server(Iocp)的那些烦恼

自G-Socket0.88版开源以来,得到很多朋友的支持。从1.0版本至2.0之前,内核几乎没有改变,经过多处的应用其稳定性和效率表现是相当不错的。这几年的经验总结成一句话:服务器程序不是有了一个好的Iocp通信组件就能玩转的。 很多情况下,我们都会遇到下面的问题:1 致命的锁又死锁了,怎样高效而又不死锁?是不是使用无锁算法就能解决?2 无序的数据为什么服务器接收的数据包会

2013-09-22 00:55:17 4910 2

原创 G-Sockets(IOCP) 2.5 Demo 源码 (VC2008 & Delphi7/2010)下载

       G-Sockets(IOCP)最新版本的Iocp Tcp Server 完成端口服务器通讯模块Demo源码及技术文档,包括粘包处理源码、客户端突破6W连接限制的文档、强大的服务器(Tcp Server)压力测试工具及无限制的EXE服务器程序(供体验测试)。       有关Iocp技术请阅读本博客其他帖子。       声明:未授权的DLL或LIB,是限制版,本人不保证它能正...

2012-05-06 00:14:17 12414 13

原创 Iocp Tcp Server——G-Socket1.1 Demo源码(VC & Delphi)

最新版本的G-Socket Demo(VC2008 Delphi 7&2010)源码及技术文档,包括粘包处理源码、客户端突破6W连接限制的文档、强大的Tcp Server测试工具。 下载连接(最新的在最前面,看日期):声明:未授权的DLL或LIB,是限制版,本人不保证它能正常使用,有关限制信息,注意参看日志文件。压力测试工具G-TcpClientDemo.exe修复Bu

2011-07-10 23:17:23 7222 8

原创 牧码客(卢益贵):专业取名软件——吉名宝

关键词:专业取名软件 吉名宝 玄学 四柱八字 五行

2010-10-14 15:43:00 5366 10

原创 强大的TcpServer压力测试工具源码(附突破连接限制的方法和工具)

      强大的TcpServer压力测试工具源码(附突破连接限制的方法和工具)关键词:IOCP TcpServer TcpClient 完成端口服务器达到6万连接突破连接限制压力测试工具堵塞锁非堵塞锁无锁 Lock Free 并发队列并发可扩充环形队列首先感谢在行动和精神上给予本人支持的各位同行,在过去的日子,使得本人的IOCP研究进入了崭新的领域。本文及附件希望能给予更多人的帮助,限于商用等原因,除了原来的0.85版开源之外,更高版本不便开源,仅简单描述一些技术要点,请谅解。但附件的压力工具源码,仍然

2010-07-23 03:48:00 14975 10

原创 代码客:G-Socket(IOCP) 1.0(Server/Client)例程源码+Server体验程序+强大的压力测试工具

代码客:G-Socket(IOCP) 1.0(Server/Client)例程源码+Server体验程序+强大的压力测试工具关键词:完成端口 IOCP GSocket GTcpServer GTcpClient 压力测试工具 模块结构层次及相互联系(1)、工作线程:响应连接的IO投递返回并负责投递读请求,并将IO返回结果投递给处理线程,可设定参数决定

2010-05-26 01:11:00 7357 7

git_tortoissegit.rar

Git-2.28.0-64-bit,TortoiseGit-2.10.0.2-64bit,安装包,内服安装说明,关键字:git,gitlab,TortoiseGit,CI/CD,Jenkins,docker-compose,git子模块,git分支合并,开发环境,测试环境,生产环境

2020-08-14

golang_iogo_install.rar

golang、liteide、protobuf、etcd、iogo安装包。关键词:iogo,golang,grpc,protobuf,etcd,zookeeper,microservice,distributed lock,service discovery,cluster,load balancing,k8s,docker,redis,mamcache,微服务框架,分布式锁,分布式文件系统,分布式数据库,高速缓存集群,服务发现,负载均衡,容器编排

2020-08-12

Iocp模块G-Sockets 1.1 Demo源码

Iocp模块G-Sockets 1.1 Demo源码,包含粘包处理源码、客户端突破6W连接技术文档等

2011-09-16

G-Sockets(Iocp) 1.1 Demo源码

Iocp模块G-Sockets 1.1 Demo源码,包含粘包处理源码、客户端突破6W连接技术文档等

2011-07-10

自扩充的Lock-Free并发环形队列算法

环形链表具有避免申请释放节点元素的优点,但为了减少资源使用所以不能分配无穷大的节点数,只能根据具体需求分配一定数量的节点数,正因为如此,可能由于对系统分析不足而导致初始化的节点数不一定能满足队列的容量需求,这个时候就需要队列具有自适应的扩充队列节点数的功能,基于锁(Lock-Base)的算法实现扩充是相当容易的,但基于锁无关(Lock-Free)实现起来难度较大,下面将使用伪代码介绍基于Lock-Free实现可自适应扩充的环形并发队列算法,并提出了优化方案以使特定环境下能再提高队列效率。

2011-02-15

强大的TcpServer压力测试工具源码(附突破连接限制的方法和工具)(再次补丁版)

原版本升级,更稳定功能更强 感谢网友对Beta的意见反馈 一、 使用G-TcpClient模块 二、 可以设定间隔时间发起大规模长、短连接 三、 可以发起密集数据包,包括即时和定时发送 四、 数据发送工作由一个独立线程担当,连接发起工作可设置多个独立的线程担当。 五、 可以多种模式组合连接或发送数据。

2010-07-23

强大的TcpServer压力测试工具源码(附突破连接限制的方法和工具)(补丁版)

原版本升级,更稳定功能更强 一、 使用G-TcpClient模块 二、 可以设定间隔时间发起大规模长、短连接 三、 可以发起密集数据包,包括即时和定时发送 四、 数据发送工作由一个独立线程担当,连接发起工作可设置多个独立的线程担当。 五、 可以多种模式组合连接或发送数据。

2010-07-23

强大的TcpServer压力测试工具源码(附突破连接限制的方法和工具)

原版本升级,更稳定功能更强 一、 使用G-TcpClient模块 二、 可以设定间隔时间发起大规模长、短连接 三、 可以发起密集数据包,包括即时和定时发送 四、 数据发送工作由一个独立线程担当,连接发起工作可设置多个独立的线程担当。 五、 可以多种模式组合连接或发送数据。

2010-07-23

强大的TcpServer压力测试工具源码(附突破连接限制的方法和工具)

原版本升级,更稳定功能更强 一、 使用G-TcpClient模块 二、 可以设定间隔时间发起大规模长、短连接 三、 可以发起密集数据包,包括即时和定时发送 四、 数据发送工作由一个独立线程担当,连接发起工作可设置多个独立的线程担当。 五、 可以多种模式组合连接或发送数据。

2010-07-23

代码客:G-Socket(IOCP) 1.0 (Server/Client)例程源码+Server体验程序+强大的压力测试工具

结构层次及相互联系 (1)、工作线程:响应连接的IO投递返回并负责投递读请求,并将IO返回结果投递给处理线程,可设定参数决定工作线程数量; (2)、处理线程:处理线程调用回调函数将信息传递给应用层或协议栈,可设定参数决定工作处理数量; (3)、看守线程:响应Accept事件调用AcceptEx,检测连接和心跳超时 ,将信息投递给工作线程,模块仅有一个看守线程。 1. 技术要求 (1)、线程同步:Lock指令、临界段; (2)、主要Socket API:WSASend、WSARecv、AcceptEx、DisconnectEx; (3)、内存管理:连接池(句柄重用)、内存池; (4)、数据0拷贝:通过内置处理线程,上层应用可以避免自建线程池及复制数据的过程。同时提供GBuf内存分配功能,应用层获得分配地址及填充数据之后亦可直接投递给内核/驱动层; (5)、数据顺序同步:同一个连接同时只有一个处理线程响应其IO事件; (6)、IO请求投递:单投递读、多投递写; (7)、0缓冲读投递:可条件编译实现,以适用大规模连接要求。 (8)、超时机制:可设置空连接(连接不发送数据)超时时间以防止DOS攻击,也可设置心跳超时时间防止网络故障导致的现有连接成为虚连接避免耗尽系统资源。 (9)、接口技术:API、回调函数、客户句柄(客户连接句柄)。 (10)、主、被动发送:不使用HASH、MAP及LIST技术,即可提供安全可靠高效的客户连接句柄,以实现服务器端主被动发送数据功能; (11)、PerHandleData的回收不以IO投递的计数器或链表来做依据但仍能安全回收,同时尽量避免在高频的读写操作时做其他无关的操作以提高读写效率。 (12)、处理线程和工作线程有着良好分工界限,繁重的工作交给处理线程完成,工作线程工作量最大限度的减少,仅响应投递返回及读投递的操作; (13)、支持AWE,模块自动识别AWE是否开启(需手动开启),“否”则使用虚拟内存机制。 2. 功能要求 (1)、多IP多端口监听,每个监听可设置不同的回调函数,以高效的区别处理数据 (2)、可设置每秒最大的连接并发量和空连接(连接不发数据)超时时间以防止DOS攻击造成的服务瘫痪、具有心跳处理(防网络异常造成的虚连接)功能 (3)、不加协议的透明传输,可适用广泛的网络通讯环境 (4)、可现实主、被动发送数据,但不会因兼顾主动发送而额外增加降低效率的工作 (5)、内置处理线程,上层应用可不必自建线程池处理数据,所有IO事件按顺序调用回调函数并可以在回调函数内直接处理数据,不必担心多线程造成的接收数据乱序的问题。 (6)、高效率的数据对应关联机制,在初次连接并根据登录数据设置每个连接对应的宿主(Owner)之后,再接收的数据即可立即获得该连接对应的宿主,而不必再做额外的查询工作,并且模块内部采用的是指针关联方式,对于长连接、主动发送的服务器系统而言是高效率的。 (7)、可兼容IPv6 3. 注意事项 因硬件环境和应用环境不同,不合理的配置会出现效率及性能上的问题,因此以下情况出现时,请务必与作者联系以确保获得更好的参数配置: (1)、连接量超过1000个的。超过的应结合具体硬件配置和网络带宽等因素综合设定运行参数。 (2)、带宽使用率超过20%的。工作线程和处理线程数量的设置也是综合考虑数据吞吐量和数据处理负载的因素来设置的,过多的线程会在调度上浪费时间,同时也应该综合考虑线程优先级别来设置工作线程和处理线程数量,两者的设置也不一定能相等。 (3)、服务器端有主动发送需求的、短连接(含网络故障造成的连接断开)出现频率高的。 压力测试工具介绍: 一、 使用G-TcpClient模块 二、 可以设定间隔时间发起大规模长、短连接 三、 可以发起密集数据包,包括即时和定时发送,1M的光纤带宽最大可以达到100K/S(单向)以上,100M本地网最大可以达到10M/S(单向)以上 四、 数据发送仅由一个独立线程但当,每点击一次Connect就创建一个线程根据当前参数发起连接。 五、 测试前提:服务器接收客户端数据后立即原样返回给客户端

2010-05-26

代码客:G-TcpServer(IOCP) 1.0 正式版及Demo源码

说明 一、受限制库Dll和lib说明: 库文件G-TcpServer.lib、G-TcpServer.Dll是受限制的试用版本和Demo配套。 1、最大连接不能超过50 2、发送字节数不能超过50 3、不能设置0读投递、无超时机制 4、其他功能限制 二、版本解读说明 1、版本名带T的表示是受限制的试用版 2、版本名带bata表示非正式版 3、版本名带WChar表示支持WideChar 4、版本号以时间格式累加计数(60进1)和显示 三、文件“G-TcpServer无限制体验版.exe”是无限制的体验版。 四、文件夹 1、Demos文件夹是VC Lib、Dll库及Delphi2010的例程源码,供开发学习 2、G-Sockets文件夹是Lib和Dll库的Delphi和VC的头文件 3、Release\G-Sockets\Dll文件夹是动态库的输出文件夹 4、Release\G-Sockets\Lib文件夹是静态库的输出文件夹 1、模块包含处理线程、工作线程和看守线程。 工作线程负责IO投递工作,并响应投递返回,再把接收的数据投递给处理线程,处理线程调用回调函数给应用层,以此可以在通讯层和应用层之间现实0拷贝数据的功能。模块只有一个看守线程,负责:a、响应Accept事件并投递接受队列;b、效验接受超时(即只连接不发数据)断开连接,防止空连接;c、效验空闲超时(即心跳超时)断开连接。 按工作量来分,最繁重的是处理线程,其次是工作线程,最闲的是看守线程。可通过OnThread事件回调函数设置线程权限。在此线程模式下,应用层可以在回调函数里处理数据而不必再建立另外的数据处理线程池。 2、线程平衡 为使连接能平衡使用处理线程,每个连接同时只有一个处理线程处理工作线程投递过来的IO返回事件并调用回调函数通知应用层。 3、收发平衡 为使连接能平衡使用IO设备,每个连接同时只能投递一个读请求,并通过线程平衡机制保证接收的数据是按顺序的被处理线程处理及通过回调函数传递给应用层;同时也只能投递一个写请求,其余写请求都按顺序放在写队列里面。读写同步都使用临界段。 4、0拷贝技术 接收数据0拷贝看1项;提供GTcpSvr_AllocGBuf()、GTcpSvr_FreeGBuf()和GTcpSvr_PostSendGBuf()三个函数实现发送数据的0拷贝。 5、0读投递 为避免内核锁定分页内存过多,可通过设置来采用0读投递来降低吞吐性能从而实现大连接量。 6、HndData回收 HndData回收有多种方法,但额外会在收发数据这两个频率操作上增加工作量,因此尽量避免在这两个操作时做太多的工作是有必要的。模块均不采用“投递计数”或“投递链表”的方式来判断回收HndData的时机,而是一旦断线立即回收,其他未决投递继续返回时只处理IoData,不对HndData做任何写操作。同时为避免HndData刚收回来但其未决投递还没有完全返回之前就立即被利用的可能性,HndData池采用了FIFO双锁并发链表,该链表通过ExNumber值来实现在最大连接情况下HndData池还有ExNumber个数量使链表不为NULL,通过设置ExNumber数量可实现控制链表末端的HndData出列时间,在这个时间内可以保证断开刚回收的HndData的未决投递能够完全返回。 HndData池,初始时如下: HD1 + HD2 + HD... + HDMaxConnection + HDEx1 + HDEx2 + HDEx... + HDExNumber | | Head------------------------------------------------------------------Tail 达到最大连接时如下: HDEx1 + HDEx2 + HDEx... + HDExNumber | | Head---------------------------Tail 断开回收一个HndData(HD)后如下: HDEx1 + HDEx2 + HDEx... + HDExNumber + HD | | Head-------(需要T时间HD才能出列)------Tail 注:T可以通过控制ExNumber值来实现,假定每秒最大可以处理C个连接和断开,需要延时T秒所有未决投递才会完全回收,那么:ExNumber = T * (MaxConnection / C)。实际上每个连接未决投递非常少(因为读写是单投递的),并且工作线程并不处理数据工作量不大,因此T很短,模块默认是3秒。对于服务器而已,一秒能接受的连接量是可知预计的,模块默认是1万,假定MaxConnection=C所以ExNumber是3万。但实际应用中,正常情况下连接率远少于1万/S,尤其是长连接的服务器,即使是短连接的服务器也不会发生这样的连接率。可能的情况是DOS,如果是影响也不大,因为还有MaxConnection控制,超过这个数的连接就立即被CloseSocket了。和频率高的数据收发相比,断线、连接的频率远少于它,在频率低的地方上多做多点工作总比在频率高的地方多做一点工作的好。 7、可伸缩性 IoData数量可根据初始需要设置,资源不足时模块自动向系统申请内存。为保证HndData的安全性,HndData池还设置了延时出列,刚回收的HndData入列时间必须超过3(或更长)秒钟,如果未达到3秒的,模块自动向系统申请内存。 8、内存管理 IoData和HndData均采用VirtualAlloc和VirtualFree来向系统操作内存。IoData池采用原子函数InterlockedCompareExchange来操作进出栈。HndData采用单向FIFO双锁并发链表来管理出入列操作。其他小内存需求的均采用静态数组或new操作。 五、内存需求 每个IoData等于一个分页内存大小,信息头大小为36Byte,有效使用内存是4060Byte,因此对GTcpSvr_AllocGBuf获得的内存写入时不应该超过4060(调用GTcpSvr_GetGbufSize获得),所有IoData占用系统内存是:IoDataCount * PageSize(4096)。每个HndData大小是128Byte,加上每个Socket分配时耗内存约是:540Bytes(此为估计值,应以MS技术文档为准),所有HndData耗系统内存是:HndDataCount * MAX_HNDDATA_AND_SOCKET_SIZE(128 + 540)。其他变量和数组可能耗得内存在10M之下。 综上,整个模块需求内存量是:UseMemSize = IoDataCount * PageSize + HndDataCount * MAX_HNDDATA_AND_SOCKET_SIZE + 10M。

2010-04-29

代码客:Iocp Tcp Server(G-TcpServer) 1.0 Demo源码

说明 一、本压缩包含: 1、Demo源码,位于:\Demos\G-TcpServerLibDemo\G-TcpServerLibDemo.vcproj 2、G-TcpServer模块头文件文件,位于:\G-Sockets\G-TcpServer.h(模块核心文件) 3、G-TcpServer模块Lib文件,位于:\G-Sockets\G-TcpServer.lib(模块核心文件) 4、无限制Demo exe文件:G-TcpServerLibDemo1.0.exe 二、受限制库G-TcpServer.lib说明: 库文件G-TcpServer.lib是受限制的试用版本和Demo配套。 1、最大连接不能超过100 2、发送字节数不能超过128 3、不能设置0读投递 4、其他功能限制 三、版本解读说明 1、版本名带T的表示是受限制的试用版,参阅二 2、版本名带bata表示非正式版 3、版本名带WChar表示支持WideChar 4、版本号以时间格式累加计数(60进1)和显示 四、技术说明 1、模块包含处理线程、工作线程和看守线程。 工作线程负责IO投递工作,并响应投递返回,再把接收的数据投递给处理线程,处理线程调用回调函数给应用层,以此可以在通讯层和应用层之间现实0拷贝数据的功能。模块只有一个看守线程,负责:a、响应Accept事件并投递接受队列;b、效验接受超时(即只连接不发数据)断开连接,防止空连接;c、效验空闲超时(即心跳超时)断开连接。 按工作量来分,最繁重的是处理线程,其次是工作线程,最闲的是看守线程。可通过OnThread事件回调函数设置线程权限。在此线程模式下,应用层可以在回调函数里处理数据而不必再建立另外的数据处理线程池。 2、线程平衡 为使连接能平衡使用处理线程,每个连接同时只有一个处理线程处理工作线程投递过来的IO返回事件并调用回调函数通知应用层。 3、收发平衡 为使连接能平衡使用IO设备,每个连接同时只能投递一个读请求,并通过线程平衡机制保证接收的数据是按顺序的被处理线程处理及通过回调函数传递给应用层;同时也只能投递一个写请求,其余写请求都按顺序放在写队列里面。读写同步都使用临界段。 4、0拷贝技术 接收数据0拷贝看1项;提供GTcpSvr_AllocGBuf()、GTcpSvr_FreeGBuf()和GTcpSvr_PostSendGBuf()三个函数实现发送数据的0拷贝。 5、0读投递 为避免内核锁定分页内存过多,可通过设置来采用0读投递来降低吞吐性能从而实现大连接量。 6、HndData回收 HndData回收有多种方法,但额外会在收发数据这两个频率操作上增加工作量,因此尽量避免在这两个操作时做太多的工作是有必要的。模块均不采用“投递计数”或“投递链表”的方式来判断回收HndData的时机,而是一旦断线立即回收,其他未决投递继续返回时只处理IoData,不对HndData做任何写操作。同时为避免HndData刚收回来但其未决投递还没有完全返回之前就立即被利用的可能性,HndData池采用了FIFO双锁并发链表,该链表通过ExNumber值来实现在最大连接情况下HndData池还有ExNumber个数量使链表不为NULL,通过设置ExNumber数量可实现控制链表末端的HndData出列时间,在这个时间内可以保证断开刚回收的HndData的未决投递能够完全返回。 HndData池,初始时如下: HD1 + HD2 + HD... + HDMaxConnection + HDEx1 + HDEx2 + HDEx... + HDExNumber | | Head------------------------------------------------------------------Tail 达到最大连接时如下: HDEx1 + HDEx2 + HDEx... + HDExNumber | | Head---------------------------Tail 断开回收一个HndData(HD)后如下: HDEx1 + HDEx2 + HDEx... + HDExNumber + HD | | Head-------(需要T时间HD才能出列)------Tail

2010-04-20

功能强大的IOCP Socket Servre模块例程源码

完成端口通讯服务器(IOCP Socket Server)设计 (六)功能强大的IOCP Socket Servre模块例程源码 Copyright © 2009 代码客(卢益贵)版权所有 QQ:48092788 源码博客:http://blog.csdn.net/guestcode 一、声明 版权声明: 1、通讯模块代码版权归作者所有; 2、未经许可不得全部或部分用于任何项目开发; 3、未经许可不得部分修改后再利用源码。 免责声明: 1、 由于设计缺陷或其它Bug造成的后果,作者不承担责任; 2、未经许可的使用作者不提供任何技术支持服务。 权利和义务: 1、任何获得源码并发现Bug的个人或单位均有义务向作者反映; 2、作者保留追究侵权者法律责任的权利。 二、开发背景 部分代码由前项目分离而来,尚未有应用考验,但对于初学者学习和进阶有很大帮助。性能上尚未有定论,但应该不会令你失望。 三、功能说明 1、可以关闭Socket的Buffer; 2、可以关闭MTU(不等待MTU满才发送); 3、可以多IP或多端口监听; 4、可以重用socket(主动关闭除外); 5、可以0缓冲接收(Socket的Buffe = 0时,避免过多的锁定内存页); 6、可以0缓冲连接(客户端仅连接,不一定立即发数据); 7、可以条件编译: a、是否使用内核Singly-linked lists; b、是否使用处理线程(工作线程和处理线程分开); c、是否使用内核锁来同步链表。 8、可以实现集群服务器模式的通讯(有客户端socket); 9、可以单独设置每个连接的Data项来实现连接和Usernfo的关联; 10、每个线程有OnBegin和OnEnd,用于设置线程独立的对象(数据库会话对象); 11、可以提供详细的运行情况,便于了解IOCP下的机制,以及进行调试分析; 12、可以发起巨量连接和数据(需要硬件配置来支持)。

2009-09-20

内存管理(AWE)——例程源码完成端口通讯服务器(IOCP Socket Server)设计(二)

有牛人曾经说过,服务器玩的就是内存。仔细想想,确实是如此。服务器对内存的需求是巨大的,对内存的要求也是苛刻的。如何在内存管理上下功夫使服务器性能达到一个质的飞跃,是服务器设计中的首要解决的问题。 说到内存,我想刚开始设计服务器的人会说,不就申请释放吗,有什么难呢。从操作步骤来说,确实就这么两个,没有再多了的工作了。当我们采用虚拟内存分配或堆分配从操作系统获取内存的时候,总以为我们获得了足够的内存就可以让服务器安心工作了。但事情并未就这么简单,操作系统在一定条件下,还可以征用已经分配给你的物理内存,它会将你的物理内存数据复制到页交换文件中,然后把本来给你的物理内存再分配给别的进程,当你的进程访问你所获得的虚拟地址集的数据时,它会再找个空(或许也是从别的进程征用)的物理内存,再从页交换文件里面调出你原来的数据放回到新的物理内存里面,并将这个物理内存映射到你申请的虚拟内存地址集内(有关这项内容请参考操作系统的内存管理)。这个过程是相当耗费CPU资源且十分缓慢的,尤其是对硬盘虚拟内存文件的读写。其它大道理本文不多说,关于操作系统内存管理的原理可以从《Windows核心编程》、《Windows操作系统》、《操作系统》等书籍上了解。 我们可以使用lookaside lists技术来重新使用已经分配的内存的,或者使用SetWorkingSetSize来设置标志告知操作系统不要交换我的内存,但不外乎多一次操作而已。这个操作到底消耗多少的CPU资源,本人也没有考究过,但从性能要求的角度来说,多一事不如少一事。本文讨论的内存管理,将采用AWE(地址窗口化扩展)的技术,将申请到的物理内存保留为非分页内存,这部分的内存不会被页交换文件所交换,关于AWE请参阅以上提到的书籍。(下面提到的“内存管理”,将仅针对应用程序自己的内存管理功能模块(下文称之为内存管理器)而言,已非上面提到的操作系统的内存管理。) 衡量内存管理器性能的有两个,一个是内存分配时的效率(分配效率),另一个内存交还时的效率(释放效率),亦即二者操作的时间性,这个时间越短那么可以认为它的效率越高。下面的讨论,假定内存管理器是以页为最小分配单位,至于页的大小是多少才合适,稍后再说。

2009-08-27

三星Flash芯片驱动程序

关键词:三星Flash驱动程序,Samsung 19FX Flash, ARM LPC21X, LPC21X IIC(I2C), SPI

2009-08-05

功能强大的串口工具:GhostyComm 4.0(万能通讯精灵)

功能强大的串口工具:GhostyComm 4.0(万能通讯精灵) 本软件是本人在2002初从事单片机开发工作时为了方便调试而编写的,当时是win 98版本。2003年才开发win xp版本。直到2007年前,仅支持串口,2006年增加了TCP连接的功能。 串口组件为第三方组件,TCP服务/客户主件为本人开发的“异步多线程”TCP组件,TCP服务组件为服务器级别的组件,每个客户连接有一个独立的线程响应处理。 本软件是单片机开发、调试不可缺少的功能齐全的串口工具——没有好的仿真器就要有好的串口工具。本软件也是TCP通讯开发、调试的好助手。好的工具可以达到事半功倍的效果。 试试看吧!适用于Windows 2000/2003/XP 数据显示举例: 收到的数据: 11:05:07,TCP服务数据,IP:192.168.10.220,端口:2801,138字节: $GPRMC,020426.000,A,2251.0144,N,10816.2180,E,0.11,39.63,100507,,,D*55$GPRMC,020426.000,A,2251.0144,N,10816.2180,E,0.11,39.63,100507,,,D*55 软件从收到的数据里面自动获取的数据: GPS有效:A GPS年:7 (3037) GPS月:5 (3035) GPS日:10 (3130) GPS时:2 (3032) GPS分:4 (3034) GPS秒:26 (3236) GPS经度:10816.218 (31303831362E32313830) GPS纬度:2251.0144 (323235312E303134342C) GPS速度:0.20385739 (302E31312C33392E3633) GPS角度:39.63 (33392E36332C31303035) GPS有效:A GPS年:7 (3037) GPS月:5 (3035) GPS日:10 (3130) GPS时:2 (3032) GPS分:4 (3034) GPS秒:26 (3236) GPS经度:10816.218 (31303831362E32313830) GPS纬度:2251.0144 (323235312E303134342C) GPS速度:0.20385739 (302E31312C33392E3633) GPS角度:39.63 (33392E36332C31303035) 收到的数据: 11:10:40,串口数据,18字节: 07 01 C7 BF C7 FF 66 80 91 A1 01 00 C3 FF 00 08 0D 0A . . 强 ? . f €? . . . ? . . . . . 软件从收到的数据里面自动获取的数据: 陀螺仪标志:1 (C7BF) 陀螺仪错误:0 (C7BF) 陀螺仪:-1.043955 (C7FF) 温度:14.8206 (6680) 角度:314.76159 (91A1) 主要功能: 1.可显示格式、非格式的字符、十进制、十六进制,非常的直观。 2、可以从收到的数据里面单独获取字符串型、整型和浮点型数据,不用再看着一堆十六进制数据而发愁了。 3、支持串口/TCP连接。 4、灵活多样的数据发送方式:字符串、十六进制或混和数据。 5.可以保存收到数据的文本或二进制数据。

2009-08-05

Windows mobile 透明/半透明控件组(皮肤控件)

当前Windows mobile下的皮肤控件还很少,而且实现透明的更加少。本人曾经在Delphi开发过一套透明控件,于是决定把它移植到windows mobile系统下。在仿真器上和三星I718+上测试过,更换皮肤速度优化得相当快了,在Windows mobile下实属不易啊。 整套控件完全脱离MFC类,有自己的:CList、CString等组件类,所有控件由CWin这个透明窗体类派生,CWin派生CForm和CCtrl类,在CCtrl类上派生各个透明控件,有:CBtt(按钮控件)、CCheckBox、CRadioBox、CPanel、CLabel、CEdit、CWord、CPage、CGrid......,CApp为程序的应用类,担负了皮肤的加载等工作和处理系统消息的功能。 按钮控件有按下、放下、焦点、禁止四种状态,可以实现透明、半透明显示。图片可以是伸展方式或平铺方式显示,伸展方式可以自适应控件的大小。 希望本源码对初学Windows mobile编程的人有所帮助! 本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/GuestCode/archive/2009/08/04/4406800.aspx

2009-08-05

高性能的socket通讯服务器(完成端口模型--IOCP)

很多人费尽心思,都没有找到一个完美的 I/O CP 例程,甚至跟人于误解,先将本人编写的例程公布出来,希望对那些苦苦寻觅的人带来收获。本例程可以作为初学者的学习之用,亦可以作为大型服务程序的通讯模块。其处理速度可以说,优化到了极点。如果理解了本例程的精髓,加上一个高效的通讯协议,你完全可以用它来构建一个高性能的通讯服务器。

2009-08-04

Windows mobile 透明/半透明控件组(皮肤控件)

版权声明 本控件组版权归作者所有,未经同意,不得用于商业用途。任何人未经同意,不得擅自更改或在原基础上进行再次开发。 当前Windows mobile下的皮肤控件还很少,而且实现透明的更加少。本人曾经在Delphi开发过一套透明控件,于是决定把它移植到windows mobile系统下。在仿真器上和三星I718+上测试过,更换皮肤速度优化得相当快了,在Windows mobile下实属不易啊。 整套控件完全脱离MFC类,有自己的:CList、CString等组件类,所有控件由CWin这个透明窗体类派生,CWin派生CForm和CCtrl类,在CCtrl类上派生各个透明控件,有:CBtt(按钮控件)、CCheckBox、CRadioBox、CPanel、CLabel、CEdit、CWord、CPage、CGrid......,CApp为程序的应用类,担负了皮肤的加载等工作和处理系统消息的功能。 按钮控件有按下、放下、焦点、禁止四种状态,可以实现透明、半透明显示。图片可以是伸展方式或平铺方式显示,伸展方式可以自适应控件的大小。 希望本源码对初学Windows mobile编程的人有所帮助!

2009-08-04

WM透明控件(学习版)

WM透明/半透明控件,WM皮肤控件,自主的WM基类

2009-08-04

游戏服务端配置“热更”及“秒启动”终极方案(golang/ygluu/卢益贵)

众所周知,游戏服务端配置信息热更有几大问题(非lua架构): 1、因配置对象的指针被场景对象引用而导致热更复杂度提高 2、信息量大的配置表热更导致游戏卡顿、玩家闪断 3、一般重载后的配置信息仅影响重载后新创建的对应场景对象,不能影响已存在的场景对象 4、在高度解耦的模块化开发模式下导致热更复杂度提高 本示例代码将使用通用方法来演示在“高度解耦、模块化、模板化”的开发模式下对上述问题的解决方案,并提出游戏服务器秒启动的辅助方案

2024-03-17

游戏服务端配置“热更”终极方案(golang/ygluu/卢益贵)

游戏服务端配置“热更”终极方案(golang/ygluu/卢益贵) 众所周知,游戏服务端配置信息热更有几大问题: 1、因配置对象的指针被场景对象引用而导致热更复杂度提高 2、信息量大的配置表热更导致游戏卡顿、玩家闪断 3、一般重载后的配置信息仅影响重载后新创建的对应场景对象,不能影响已存在的场景对象 4、在高度解耦的模块化开发模式下导致热更复杂度提高 本示例代码将使用通用方法来演示在“高度解耦、模块化、模板化”的开发模式下对上述问题的解决方案。

2024-03-17

Data Engine(数据引擎)用于独立模块间数据共享(Data Engine, For data sharing betwe

在模块化开发当中要求模块逻辑代码具有高度的独立性,但模块数据又要共享给其它模块使用。如果开放模块接口给其它模块直接引用,就会因为互相引用依赖而降低模块的独立性。使用数据引擎(中间件)的公共接口来交换模块数据,就能避免引用依赖使得模块具有更高的独立性,提高模块的移植和移除效率,以及实现模块的热拔插等功能。本引擎在2018~2020间陆续创建定型,先后命名为:数据交换机、数据缓冲、数据中台等,最终定名:数据引擎。后续陆续调整目录结构和源码文件名及完善功能。 In modular development, module logic code is required to be highly independent, but module data must be shared with other modules. If the open module interface is directly referenced to other modules, the independence of the module will be reduced because of the cross-re

2023-09-17

amc(Asynchronous Microservice Cluster)异步微服务集群库

原定于是iogo(http)的姊妹篇iogo(tcp),后决定命名为AMC。与iogo(http)同期创作,但网络插件一直没有完工,因为一直考虑更深层次的问题。在“异步通信+微服务+模块化开发”方面,AMC有着便捷高效的特点,她的模式值得学习和参考。 Originally intended to be the sister of iogo (http), iogo (tcp) was later named AMC. It was created at the same time as iogo (http), but the network plug-in has not been completed because it has been considering deeper issues. In terms of asynchronous communication+microservice+module development, AMC has the characteristics of convenience and efficiency, and its model is

2023-09-17

IOK-QueueTest.exe

C++11高效有锁队列测试程序

2021-08-15

grpc、protobuf、etcd之golang源码

grpc、protobuf、etcd的golang源码,下载后解压到/$gopath/src/目录下

2019-01-26

protoc-3.6.0-for-win32

protobuf的命令行工具,下载解压后请将bin目录设置到系统的path环境变量中

2019-01-26

grpc、protobuf、etcd的golang源码

grpc、protobuf、etcd的golang源码,下载后解压到/$gopath/src/目录下

2019-01-26

一键安装高可用etcd集群(TLS)

############################################################ # Copyleft ©2018 freetoo(yigui-lu,卢益贵,码客) # name: Deploying etcd clusters(HA, TLS) # 一键安装高可用etcd集群(TLS) # qq/wx: 48092788 e-mail: [email protected] # blog: https://blog.csdn.net/guestcode # create: 2018-11-21 #########################

2018-11-21

自动万能makefile(linux ubuntu gcc/g++)

名称:自动万能makefile(linux ubuntu gcc/g++) 作者:码客(卢益贵) qq:48092788 时间:2018-5-20 功能: 1、自动以makefile的父目录名为Target文件名称 2、自动搜索源码文件(含子目录) 3、自动搜索头文件文件(含子目录) 4、自动搜索搜索库文件(含子目录) 5、无需任何设置也可以编译可执行文件 6、可以生成.a和.so文件 注意:本文件不对您的代码编译结果担负任何法律和道德责任,使用时需谨慎 #

2018-05-31

ioking真正无锁的服务器引擎之消息引擎模块(nolock)修订版

ioking真正无锁的服务器引擎之消息引擎模块:无内核态、无CAS、非lock-free,实现了多线程无锁高效率的消息传递,适用于服务器性能要求极其苛刻的场景。 增加内存消耗提醒等,更多说明请移步本人博客: http://blog.csdn.net/guestcode

2015-08-31

ioking真正无锁的服务器引擎之消息引擎模块(nolock)

ioking真正无锁的服务器引擎之消息引擎模块:无内核态、无CAS、非lock-free实现了多线程无锁消息传递,适用于服务器性能要求极其苛刻的场景。

2015-08-27

ioking无锁线程通讯(no-lockl)demo

IOKING message engine “云猴”无锁消息引擎测试程序。无锁:在非内核态及非原子锁情况下的多线程通讯机制。线程间一秒1450万笔消息通讯。

2015-04-09

真正无锁IOCP回射服务器(IOCP Tcp EchoServer)

基于IOCP模型的无锁0内核态TCP通讯服务器引擎(IOCPTCP Server)

2014-06-10

G-Sockets 2.5

G-Sockets 2.5 1、补丁发送GBuf可能导致乱序的Bug, 2、Delphi版增加内存加载DLL的功能, 3、增加授权证书功能,开发平台调试和本地IP调试均能全功能调试。

2014-01-13

G-Sockets(IOCP) 2.0 Demo 源码

基于IOCP模型的TCP通信组件Demo源码(包含数据封包和粘包处理源码)

2013-09-21

Iocp模块G-Sockets 1.2 Demo 源码

Iocp TcpServer模块的Demo源码,包含客户端单机突破6W连接的设置文档,及斩包出来的源码

2012-05-06

Iocp模块G-Sockets 1.1 Demo源码(Bug修复)

Iocp Server 完成端口服务器 突破6万连接

2011-11-09

Iocp模块G-Sockets 1.1 Demo源码(更正编译)

Iocp模块G-Sockets 1.1 Demo源码,包含粘包处理源码、客户端突破6W连接技术文档等

2011-09-16

空空如也

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

TA关注的人

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