程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> Delphi >> DIOCP開源項目出爐,附帶<IOCP退出資源的管控研究代碼>

DIOCP開源項目出爐,附帶<IOCP退出資源的管控研究代碼>

編輯:Delphi

經過對一段時間對IOCP的學習和研究。對IOCP的流程有了一定的了解。

後面對一段時間的IOCP優化和實際項目的使用,在DIOCP中加入了日志文件記錄功能,利用api編寫了一個客戶端通信類,等解決了很多bug,並已使用在公司的項目中,現運行穩定。今天對IOCP退出時資源的釋放,做了最後一步研究和優化。

 

 

為了方便大家學習,我把這個項目命名為DIOCP,上傳在google的SVN項目中

https:

大家可以通過svn下載代碼,裡面我寫了一個Echo的測試Demo,准備後續加入聊天等Demo。

--IOCP退出資源的管控研究

現在在項目中使用的IOCP退出的過程是。

  ////////////=;

 

 

對IO內存池也進行了一些優化,主要加入了資源回歸的監控 


= 
    ///////////// <summary>
    ////// </summary>
    /// <param name="pvIOData"> (POVERLAPPEDEx) </param>
    /// <summary>
    ////// </summary>
    /// <returns>/// </returns>
    /// <summary>
    ////// </summary>
    /// <returns>/// </returns>
    //
      Destroy; //// giveBackIOData(


  == = = CreateEvent(, True, True, 


   FHead =  
  == = = 
  =====//= Result =  
    
      //=//直接借走<增加使用計數器>// FUsingCount >  
  //= = = ////還原大小<分配時的大小>=//= lvData <>  
  
    //=////== = = = = FUseableCount + TIODataMemPool.giveBackIOData(
     (pvIOData.pre <> )  (pvIOData.next <> )  (pvIOData = FHead) 
     
    
      //////// FUsingCount =  
   FTail =  
  =    
  == lvPre <>  
    = =   //= = = = == === lvRet = WAIT_OBJECT_ 
  ==
   __IODATA_instance <>  
  = .

 

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