YxdIocp (DIOCP修改版) SVN: https://github.com/yangyxd/YxdIOCP 【特别说明】 本源码由YangYxd(音儿小白)以网友天地弦的DIOCP为基础修改优化而来。YxdIocp与DIOCP使用方式略有不同,不完全兼容!! 我会接收大家提交的B
分类: DIOCP3
DIOCP 音儿小白精简版已经放到下载里供大家下载测试
这个版本是音儿精简自天地弦的 DIOCP ,并精简了 QWorker 做为 Iocp.Task ,欢迎大家下载测试。 下载地址:百度网盘
Diocp截图
[DIOCP视频]-DIOCPFileServer视频
本次视频简单讲解了DiocpFileServer + 客户端使用接口方式,通信方面可以方便的在DiocpBlockTcpClient和IdTcpClient组件之间切换。 + 添加单独的EXE客户端(MyBean插件依然可以直接使用) 下载地址(Diocp共享视频下载) http://pan.baidu.
【被C折腾系列】用C调DIOCP编码客户端通信
前几天有个朋友,说他们公司做手游,服务端用的DIOCP3里面做文件服务器,客户端用cocos-x,在调试与diocp通信时老是失败! 于是,我下载了一个Codeblocks经过几个小时的折腾,终于折腾出来了,把其中的一些心酸记录下,以便以后查阅。 1.windows下面使用socket的一些
【DIOCP-DEMO说明】所有演示DEMO的简要说明
samples目录下面为自带的DEMO 发现有很多朋友不知道如何开始DIOCP,下面是DEMO的简单说明,希望对大家有用 C#\Simple 用C#写的一个简单的回传测试,服务端开启ECHO服务器即可 samples\ECHO IOCP回射测试,在服务端收到数据后立即发送回客户端,&
【DMQ引擎】-DMQ多进程插件引擎服务平台介绍
写过服务端项目的程序员可能都有非常痛苦的经历,服务端经常奔溃,无从查起。的确一个服务端要稳定下来要经过长期的积累,不停的测试,调试,发现问题,解决问题。这个周期可能很长,几个月,甚至以年计算。许多企业,公司可能经不起这样的折腾。 经过几个版本的改造和沉淀,现在推出一个基于DIOCP3的商业化服务端方案。先上一种设计蓝图
【DIOCP3-说明书】关于服务端的KeepAlive属性(心跳)
DIOCP3中服务端(IocpTcpServer)中提供一个KeepAlive属性,之前版本默认开启,2014-12-30之后的版本默认是关闭的。 首先要搞明白KeepAlive的作用是什么,服务端开启KeepAlive后在建立连接的时候会设置Socket的SO_KeepAlive选项 MSDN的解释是这
【杂谈指针】- 指针的移动
刚刚在群里看到一个这样的问题 MonoPixel: PByte; Inc(Integer(MonoPixel));这个在32位下没问题,为啥64位不能编译呢? 咋一看,以为是把里面的值进行累加,后来一想应该是移动一下指针。 对于这种移动指针的做法有两个错误: 第一个是用了Integer,来转换指针如果在3
diocp3-服务器的连接上限是到底是多少?diocp3的一个装13测试(8W连接数)
测试DEMO路径 diocp3\samples\ECHO 之前群里说一台服务器最多是High(Word)的连接数65535,当时我看了下socket的类型是u_long,并不是word,虽然不用那么多连接数,虽然当时润哥做过测试。今天发现我的机子可以上6W的连接数,果断对diocp3做了下连
[DIOCP3-说明书] 关于DEMO的编译
总有些朋友问我,关于DEMO编译的一些问题,每次都回答大概都差不多,我想还是写篇说明书给大家,关于DEMO编译的步骤。 【环境设定】 1.将DIOCP3\source路径添加到Delphi的搜索路径,[tool->options->Environment Options->Delphi
关于结构体的大小
第一步是要知道结构体大小的计算方式: 结构体大小等于最后一个成员的偏移量加上最后一个成员的大小, 偏移量指的是结构体变量中成员的地址 – 结构体变量地址的差, 第一个成员的偏移量为0 下面代码 TRecord2 = record a: Integer; b: Integer; c: Integer; en
[DIOCP3-IocpTask说明书]任务的投递和回调处理单元
【说明】 IocpTask是基于Iocp引擎的多线程任务投递和处理单元,可以方便的把任务进行投递到IOCP线程进行统一调度和处理,是模仿QDAC-QWorker的处理方式,支持D7以上的版本。 【使用方法】 使用上很简单,下面解释一种比较全面的方法: procedure PostATask(pvTaskWork:TOn
[DIOCP3/MyBean/QDAC开源项目] DataModule-DB例子基于MyBean的插件实例<三层数据库方案>
【说明】 这个例子答应大家很久了,一直没有时间弄,现在正式结合MyBean插件可以很方便的在客户端共享操作连接,执行数据库的各项工作,屏蔽了底层的通信解码器编码等工作,直接传递Variant,给了开发者足够的领活和自由。 【服务端使用技术】 diocp3:担当底层的通信任务。 qworker/iocpTa
多线程程序的填坑笔记和多线程编程应该遵循的规则
这几天晚上群里一朋友有偿叫我把他的程序弄稳定,因为是现场管理项目,需要做到无人职守,所以即使是客户端,也不能经常down机,因为之前对他的程序有过一个晚上的实地查看,基本流程已经有个大概的了解,我就接下来了。 刚开始的时候, 程序运行不到一个上午,内存暴涨,有时几个小时就挂了,这个那天晚上发现了,找了半天发现一处加载图
DIOCP3-数据库DEMO
socket-Coder\DataModuleDEMO\ 本DEMO演示数据库的简单使用,其他功能需要自己扩展。 将工程的输出路径设置到socket-Coder\DataModuleDEMO\BIN下面 服务端使用的Access数据库 可以改连接使用其他数据库 DataModuleDEMO\
DIOCP3-DIOCP1升级到DIOCP3
DIOCP3兼容DIOCP1的,有些属性做了修改 DIOCP3, uIOCPConsole没有了, uMemPool没有了 1.DIOCP1,代码: DIOCP3中去掉TIOCPContextFactory, 可以直接往TIocpConsole(uIocpCentre单元中)对象上注册。TiocpCons
DIOCP3-关于TIOCPConsole
TIOCPConsole是继承至TIocpTcpServer,做了管理和调用编码和解码器器的功能。可以通过向他注册编码和解码器可以忽略粘包的问题。 这样如果TIOCPConsole客户端必须按照一定的编码器和解码器的协议发送数据和接受数据, diocpCoders中已经有了几种编码和解码器, 比较常用的T
DIOCP3-粘包处理
什么是粘包: 第一次发送 12345, 第二次发送abcde, 底层socket可能会一次性进行发送12345abcde,或者对方可能一次性进行了接收,那接收的时候,你可能想分两次接收才对,第一次接受到12345, 第二次想接收abcde,但是事与愿违,一次就接收完了,这就是粘包的
DIOCP3 – 关于接收数据
DIOCP3支持两种方式接收数据, 第一种是原始的流数据, 最通用的一种方式,客户端发啥,这边就收到啥。需要自己处理粘包问题。 可以在TCilentContext或者TIocpTcpServer的OnRecvBuffer中处理, 如果Errcode = 0可以进行收到数据的处理 下面这两个都会触发 TIo