svn下載地址(使用svn客戶端下會比較方便):
http://mmz-asio4delphi.googlecode.com/svn/trunk/
delphiASIO_mmzmagic本庫是Boost ASIO for delphi的高效率穩定封裝 做了8年多的DELPHI開發,還仍然在用D7,后續的DELPHI版本比如d2007,d2010還是非常很優秀的,有許多方便的功能和語法效率的改進。為啥不更換到新版本呢? 對于我來說究其原因還是因為通訊程式無法簡單的做修改就移植到新版本上。 另外一個方面也是DELPHI本身沒有較好的通訊庫,INDY不穩定也不完善,不同版本也有些區別。開發起來四處拋例外的方式也讓人很不爽。 研究了一些第三方通訊庫,如ics系列dxsock系列,最后選擇了dxsock,這樣輕量級的庫從穩定性還是易用性來說都比其它的要好用些。 不過這些庫由于底層實作的方式都不能很好的支持大規模應用,由于后續支持的問題也不能支持DELPHI的新unicode版本。 C++由于有類似ACE、ASIO等等工業級的高性能穩定牛庫的支持,c++的使用者們可以輕輕松松搞定很多難題而不用為并發連接數發愁。 為此經我研究決定封裝底層基于IOCP(完成埠)實作的Boost::ASIO為DELPHI的底層通訊庫,并且已經實作,delphi fans們大家有福啦 哈哈!
主要有以下幾點好處:
1、支持大量并發( xp系統上測驗可以支持到15000+的并發連接,付測驗程式) 2、支持delphi的所有版本(d5以及以上版本都可以支持)
3、支持tcp服務端和客戶端、異步通訊機制
4、在封裝中自動高效處理粘包、異步通訊記憶體管理等較煩人的問題,也是容易導致不穩定的因素,提供外部使用的簡明介面
5、最重要的是使用和開發都十分簡單 :)
FAQ:
我能用它做什么? 答:所有用到tcp通訊的地方你都可以用它。
用它封裝的服務端或者客戶端可以與其它控制元件或者是其它程式進行通訊嗎? 答:可以,底層是標準tcp協議,不會有任何問題。
它有什么示例程式嗎? 答:有專門的性能測驗程式,也有遠程資料庫物件ADO版本以及UNIDAC版本的實際封裝。
使用它是否需要支付費用?能否提供源代碼? 答:完全免費使用,并且提供所有原始碼,我會做好后續更新為delphi的發展做點力所能及的貢獻。
如果我對它進行了改進怎么聯系作者? 答:QQ 22900104,馬敏釗,郵箱 [email protected],QQ討論群 15637473 歡迎加入討論。
發布時客戶端需要附帶什么嗎? 答:需要附帶一個動態庫“Svr_intf.dll”100k大小,由于是使用vs2005編譯的boost庫所以運行時機器上需要安裝有微軟的c++ vs2005運行庫。
uj5u.com熱心網友回復:
不錯,很好。uj5u.com熱心網友回復:
謝謝樓主無絲貢獻的精神uj5u.com熱心網友回復:
收藏下。uj5u.com熱心網友回復:
很好啊uj5u.com熱心網友回復:
相關知識簡介BOOST:
Boost庫是一個可移植、提供源代碼的C++庫,作為標準庫的后備,是C++標準化行程的發動機之一。 Boost庫由C++標準委員會庫作業組成員發起,其中有些內容有望成為下一代C++標準庫內容。在C++社區中影響甚大,是不折不扣的“準”標準庫。Boost由于其對跨平臺的強調,對標準C++的強調,與撰寫平臺無關。大部分boost庫功能的使用只需包括相應頭檔案即可,少數(如正則運算式庫,檔案系統庫等)需要鏈接庫。
ASIO:
Boost.Asio是一個輕量級的異步網路庫,它有簡潔,小巧,高效,有良好的可擴展性,支持高并發的IO處理,入門簡單等諸多優點。 Boost.Asio在設計上采用和Ace相似的Proactor設計模式,同時內置了對多執行緒的支持,針對不同的平臺,采用了最優的socket模型,可以說能發揮機器的最大并發處理能力。
IOCP(完成埠):
Windows的設計目的是一個安全的、健壯的作業系統,能夠運行各種各樣的應用程式來為成千上萬的用戶服務。在處理大量用戶并發請求時,如果采用一個用戶一個執行緒的方式那將造成CPU在這成千上萬的執行緒間進行切換,后果是不可想象的。而IOCP完成埠模型則完全不會如此處理,它的理論是并行的執行緒數量必須有一個上線-也就是說同時發出500個客戶請求,不應該允許出現500個可運行的執行緒。目前來說,IOCP完成埠是Windows下性能最好的I/O模型,同時它也是最復雜的內核物件。它避免了大量用戶并發時原有模型采用的方式,極大的提高了程式的并行處理能力。 雖然說IOCP完成埠應用的范圍在于與IO相關的各種場合,但是就目前來看,IOCP完成埠主要用于網路通信方面。例如:大型MMO游戲(目前大型的MMO游戲都采用了IOCP完成埠)、大型IM(即時通訊、實時傳訊)系統、 網吧管理系統、企業管理系統等等具有大量并發用戶請求的場合。穩定、高效的IOCP完成埠通信模型幾乎成為開發這類系統的基礎。
誤區:
Windows系統下的socket模型有多種,其中完成例程的效率也是相當高的,其它的也不差(相關模型知識這里不多做介紹,讀者可以自己搜索或查閱有關資料)。但是不知道為什么,一提起IOCP就會有很多人質疑:IOCP真的有這么神話嗎?
盡管質疑,依然有很多人還是在茫茫網路中苦苦尋找一個完整的IOCP原始碼,希望能夠對了解IOCP起到事半功倍的作用,不過得到的大多也只是殘缺不全的。什么是IOCP?IOCP的機制是什么?IOCP有怎樣的性能?當一個人深入了解IOCP以后,才解開了它神話之謎:其實它沒有什么神話。很多人之所以質疑IOCP,說出上面那句話的時候,其實是他正在神化IOCP,主要是因為對IOCP不了解,甚至不知道。所以,是誰神化了IOCP呢?是那些不了解IOCP但又想了解卻沒有進展的人。
IOCP主要針對資料吞吐量和連接并發量而設計。有些人使用IOCP,做的卻是堵塞模式的事情:對每個連接自己建立一個發送佇列,每次才投遞一個發送請求給IOCP,等該請求已決后才又出列一個再投遞給IOCP。任何一個服務器,能達到怎樣的性能,對設計者的要求也是苛刻。根據服務器對性能要求,合理利用通訊模型,才是設計者的關鍵。如果在一個只有100個終端且每個終端每10秒才發送一個資料包的服務器系統里,用什么Socket模型都一樣,甚至用Win98系統做都可以。
對于一個服務器而言,需要設計者對記憶體管理,對網路狀況,對作業系統等等都要有深入了解,并具有深厚的技術功底。否則,還會產生更多神化IOCP的人。
服務器性能,系統支持是基礎,設計者水平是關鍵。而這個水平條件,沒有一個衡量的最終標準,它是永無止境的,會隨著時間和經驗的積累不斷提高。
uj5u.com熱心網友回復:
這個必須支持。uj5u.com熱心網友回復:
Delphi還有這樣的人在做貢獻,實在難得,必須得大力支持!uj5u.com熱心網友回復:
呵呵 有興趣的話 還有更多的東東都是開源的http://user.qzone.qq.com/22900104/blog/0
uj5u.com熱心網友回復:
很好,很強大uj5u.com熱心網友回復:
這個必須頂一下uj5u.com熱心網友回復:
【對于一個服務器而言,需要設計者對記憶體管理,對網路狀況,對作業系統等等都要有深入了解,并具有深厚的技術功底。否則,還會產生更多神化IOCP的人。服務器性能,系統支持是基礎,設計者水平是關鍵。而這個水平條件,沒有一個衡量的最終標準,它是永無止境的,會隨著時間和經驗的積累不斷提高。 】
所以,我是很希望能有一個通訊服務端的框架,中低級的開發人員也能快速實作高手才能做到的效果。。。。。。
再退一步,干脆服務端不再自己寫,而是直接借助于現成的Websever(如apache、IIS)
它們的穩定和高效,是高手都很難達到的
我們只要開發應用層的東西,實作業務邏輯就行了。。。。。。
uj5u.com熱心網友回復:
呵呵 我發布的就是一個通訊服務框架啊 可以很簡單容易穩定高效的使用iocp,看看demo就知道。
uj5u.com熱心網友回復:
厲害。學習。。 DELPHI就這缺點uj5u.com熱心網友回復:
支持一下 學習學習uj5u.com熱心網友回復:
好東西,收藏!uj5u.com熱心網友回復:
1、支持大量并發( xp系統上測驗可以支持到15000+的并發連接,付測驗程式) 2、支持delphi的所有版本(d5以及以上版本都可以支持)3、支持tcp服務端和客戶端、異步通訊機制
4、在封裝中自動高效處理粘包、異步通訊記憶體管理等較煩人的問題,也是容易導致不穩定的因素,提供外部使用的簡明介面
5、最重要的是使用和開發都十分簡單 :)
uj5u.com熱心網友回復:
膜拜牛人!!!uj5u.com熱心網友回復:
發布時程式需要附帶什么嗎? 答:需要附帶一個動態庫“Svr_intf.dll”100k大小,由于是使用vs2005編譯的boost庫所以運行時機器上需要安裝有微軟的c++ vs2005運行庫(注: 更新由于后邊使用了vs2003編譯,可以無需再安裝運行庫)。
從svn上下載的即最新版本。
uj5u.com熱心網友回復:
支持蟲子!uj5u.com熱心網友回復:
下載體驗一下uj5u.com熱心網友回復:
不錯,可以推廣uj5u.com熱心網友回復:
呵呵 謝謝 支持 歡迎各位DELPHI fans 入群討論uj5u.com熱心網友回復:
uj5u.com熱心網友回復:
呵呵 謝謝 支持 歡迎各位DELPHI fans 入群討論uj5u.com熱心網友回復:
樓主好人!!!!!!!!!!!!uj5u.com熱心網友回復:
最近有不少更新,包括資料庫連接池,簡單的聊天示例等,請見SVN。新代碼下載地址:
http://code.google.com/p/mmz-asio4delphi/downloads/list
也可以從svn上更新:
http://mmz-asio4delphi.googlecode.com/svn/trunk
uj5u.com熱心網友回復:
SO GOODuj5u.com熱心網友回復:
不頂不行,很好的東西,正在準備用到專案中uj5u.com熱心網友回復:
這真的必須支持!!!無私的頂!uj5u.com熱心網友回復:
好。支支持LZ.uj5u.com熱心網友回復:
呵呵 更新大家支持 :)uj5u.com熱心網友回復:
不知道應用到專案中會不會有什么問題啊uj5u.com熱心網友回復:
剛好想學這方面的知識,感謝樓主!uj5u.com熱心網友回復:
非常感謝無私奉獻轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/146418.html
標籤:網絡通信/分布式開發
