DIOCP开源项目-DIOCP3的重生和稳定版本发布

DIOCP3的重生

从开始写DIOCP到如今已经有一年多的时间了,最近两个月以来一直有个想法作个 30 * 24 稳定的企业服务端架构,让程序员专一于逻辑实现就好。虽然DIOCP到如今通信层已经很稳定了,可是要作若是作这种架构,发现还有诸多不便。因而,有了重写DIOCP的想法。git

 

关于开源服务器的选用:

前段时间大部分代码已经编写完成,因而须要给diocp3安个家,google显然不行了,总是被墙。而后准备选用http://sourceforge.net/,发现个人qq email总是收不到验证邮件。通过几番纠结选用了github。程序员

目前diocp3的开源地址 https://github.com/ymofen/diocp3github

 

关于开源:

自从DIOCP开源以来,收益最大的应该是本人,结交了不少好的好友,获得他们不少帮助和支持。diocp也得以稳定。有些朋友得知我写diocp3,劝我作商业版。通过一翻思考后,决定仍是开源diocp3,而且为了可使diocp3使用在商业软件上,在选用开源协议方面选用了BSD。下面是摘自百度的一段话。服务器

BSD 代码鼓励代码共享,但须要尊重代码做者的著做权。BSD因为容许使用者修改和从新发布代码,也容许使用或在BSD代码上开发商业软件发布和销售,所以是对 商业集成很友好的协议。而不少的公司企业在选用开源产品的时候都首选BSD协议,由于能够彻底控制这些第三方的代码,在必要的时候能够修改或者二次开发。架构

 

关于diocp3 功能:

  • iocp-engine:

                iocp引擎,也是diocp的核心部分, 包含(iocpEngine.pas,iocpLocker.pas,iocpProtocol.pas,iocpStringRes.pas)4个文件,实现了基本的iocp模型。也是其余部分的核心部分。并发

  • iocp-socket:

                iocp模型在socket方面的应用。iocpTcpServer,是高并发的服务端组件,iocpTcpClient,是客户端的Socket,与ICS中的TWSocket相似,都是基于iocp引擎的。异步

  • iocp-socket-Coder:

                包含(uBuffer.pas,uIocpCoder.pas,FileLogger.pas,uIOCPCentre.pas,uIOCPFileLogger.pas,iocpCoderTcpClient.pas)文件,强化了客户端和服务端组件,融合和编码和解码器,客户端和服务端,只须要投递对象就好,不用去在业务中处理繁琐的粘包问题,兼容DIOCP1的功能类。socket

  • iocp-task:

                基于iocp引擎的任务投递+异步回调。iocpLogger,基于iocp-task的日志记录,能够在线程中,把信息投递到主线程,记录日志到memo。高并发

 

征询你们的已经把全部的代码存放在source目录,便于你们引用。测试

 

关于diocp3的DEMO

存放在samples目录下面

  ECHO:

       普通的echo功能实现服务器测试,ECHO\BIN\下面存放了 dbiocp的测试客户端和qsl的EchoClient.exe写的很好了,我就没有重复写了。目前进行了并发15K的测试,运行了2天没有问题。

iocpTask:

       投递任务的简单DEMO

socket-Coder:

       消息推送的实现,服务器主动推送消息给客户端的一个简单DEMO

image

 

* 因为各个版本的.dproj文件不兼容,DEMO中不提交除了dpr以外的其余文件,请你们在编译DEMO的时候设置下工程search paths或者把diocp3\source加入的library path中,就能够编译diocp3的DEMO了

 

关于Delphi环境变量的设置

image

 

工程目录设定

$(DIOCP3_HOME)\Source;

image

 

 

目前通过了几个Beta版本的测试, 先发布DIOCP3的第一个版本,若是有问题欢迎到群内交流

DIOCP(Delphi□iocp)交流群:320641073

 

最后感谢:

  ryan 哥 给予的iocpRequest思想。感谢qsl提出的不少建议,感谢qdac-swish的不少代码和思想(iocp-task,源于qworkers), 感谢音儿的DEMO的测试。

相关文章
相关标签/搜索