程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> Delphi >> DIOCP開源項目-DIOCP3的重生和穩定版本發布,diocp-diocp3

DIOCP開源項目-DIOCP3的重生和穩定版本發布,diocp-diocp3

編輯:Delphi

DIOCP開源項目-DIOCP3的重生和穩定版本發布,diocp-diocp3


DIOCP3的重生

從開始寫DIOCP到現在已經有一年多的時間了,最近兩個月以來一直有個想法做個 30 * 24 穩定的企業服務端架構,讓程序員專注於邏輯實現就好。雖然DIOCP到現在通訊層已經很穩定了,但是要做如果做這種架構,發現還有諸多不便。於是,有了重寫DIOCP的想法。

 

關於開源服務器的選用:

前段時間大部分代碼已經編寫完成,於是需要給diocp3安個家,google顯然不行了,老是被牆。然後准備選用http://sourceforge.net/,發現我的qq email老是收不到驗證郵件。經過幾番糾結選用了github。

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

 

關於開源:

自從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的功能類。

  • 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

* 由於各個版本的.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的測試。




  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved