IOCP簡單實現


本人工作是服務端性能測試,因工作需要開發機器人框架,選用底層的時候看到網上滿大街的IOCP介紹,還有說IOCP比WSAAsyncSelect復雜等等,所以只好轉WSAAsyncSelect實現。

 

因並發客戶端需要進行調試測試,壓力測試工具作為客戶端來說性能十分重要,沒有經過測試的鬼知道秒並發多少請求,秒並發多少connect,所以就需要實現高效服務端進行調試客戶端,在工作之余又繼續研究IOCP,吐槽這些無非就是,沒人想過怎么優化精簡流程,生搬硬套實現IOCP的處理,其實可以利用MSG和簡單IOCP模型簡單實現。

 

下圖介紹如何簡單實現流程,就那么簡單也不需要用到內存池,代碼參考“Windows網絡與通信程序設計王艷平”第四章 IOCPDemo,iocpsys這個做了太多處理,建議大家還是從IOCPDemo着手優化精簡方案,

鏈接: http://pan.baidu.com/s/1c2HTYLy 密碼: c6r2

 

主要用到的API有一下2個,其余的API和WSAAsyncSelect沒多大區別,調用WSASend、WSARecv等

CreateIoCompletionPort

GetQueuedCompletionStatus

 

 

看到這里,有小伙伴看到這里會說,pCompletionKey參數、OVERLAPPED結構、PerHandleData、PostQueuedCompletionStatus等等怎么都沒有了,沒錯我把這些統統都拋棄,用另一種方式實現

 

網上很多IOCP的壓力測試也很假,自己做的壓力客戶端秒破小豬IOCP服務端,有空再分享客戶端和服務端給小伙伴測試,效果杠杠滴,

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM