功能強大的IOCP Socket Server模塊源碼——完成端口通訊服務器(IOCP Socket Server)設計(六)

完成端口通訊服務器(IOCP Socket Server)設計

(六)功能強大的IOCP Socket Servre模塊例程源碼

Copyright © 2009 代碼客(盧益貴)版權所有

QQ:48092788   源碼博客:http://blog.csdn.net/guestcode

 本文論壇討論:http://topic.csdn.net/u/20090921/11/69fe4623-0fd6-46df-9b6d-feaa8257beca.html

一、聲明

版權聲明:

1、通訊模塊代碼版權歸作者所有;

2、未經許可不得全部或部分用於任何項目開發;

3、未經許可不得部分修改後再利用源碼。

 

免責聲明:

1、由於設計缺陷或其它Bug造成的後果,作者不承擔責任;

2、未經許可的使用作者不提供任何技術支持服務。

 

權利和義務:

1、任何獲得源碼並發現Bug的個人或單位均有義務向作者反映;

2、作者保留追究侵權者法律責任的權利。

二、開發背景

部分代碼由前項目分離而來,尚未有應用考驗,但對於初學者學習和進階有很大幫助。性能上尚未有定論,但應該不會令你失望。

三、功能說明

1、可以關閉SocketBuffer;

2、可以關閉MTU(不等待MTU滿才發送);

3、可以多IP或多端口監聽;

4、可以重用socket(主動關閉除外);

5、可以0緩衝接收(SocketBuffe = 0時,避免過多的鎖定內存頁);

6、可以0緩衝連接(客戶端僅連接,不一定立即發數據);

7、可以條件編譯:

a、是否使用內核Singly-linked lists

b、是否使用處理線程(工作線程和處理線程分開);

c、是否使用內核鎖來同步鏈表。

8、可以實現集羣服務器模式的通訊(有客戶端socket);

9、可以單獨設置每個連接的Data項來實現連接和Usernfo的關聯;

10、每個線程有OnBeginOnEnd,用於設置線程獨立的對象(數據庫會話對象);

11、可以提供詳細的運行情況,便於瞭解IOCP下的機制,以及進行調試分析;

12、可以發起巨量連接和數據(需要硬件配置來支持)。

四、缺陷

1、不支持UDP

2、不帶通訊協議,無法處理粘包;

3、工作線程和處理線程隔離還不是很明確;

4、設計尚需再完善和優化。

五、通訊速率測試部分截圖

A機:單核臺式機(服務端)

B機:雙核筆記本(客戶端)

網絡:本地100M路由

由於臺式機太老,用盡CPU還是不能用完帶寬,因此改做服務器,由筆記本做客戶端,發起密集數據,以堵塞的情況來滿負荷使用網絡,收發接近:10MB

注意:由於測試條件太差,下面截圖不能說明任何權威結果。

 

服務器端設置:

 

 

服務器端運行信息:

 

 

 

服務器端CPU利用率:

 

 

 

 

客戶端設置:

 

 

客戶端運行信息:

 

 

客戶端網絡利用率:

 

 

客戶端CPU利用率:

 

 

 

 

 下載連接:

http://d.download.csdn.net/down/1679785/guestcode 

 

The end

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章