自定义博客皮肤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

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

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

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

2014-02-09 12:40:13 9068

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关注的人

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