資源簡介
開發(fā)環(huán)境: VS2010
開發(fā)語言: C++
Winsock I/O模型: IOCP (完成端口模型)
代碼示例包括Client和Server, common下包括Functor和Thread兩個(gè)模塊。Functor封裝了函數(shù)對象,用于各種Callback;Thread封裝了線程函數(shù)對象,用于將類的成員函數(shù)綁定到一個(gè)線程來執(zhí)行。
server路徑下IServer定義了服務(wù)端的接口,CompletionPort實(shí)現(xiàn)了IServer,并利用觀察者模式和上層解耦。Server的實(shí)現(xiàn)分解為IoData, SocketContext, Disposer, Initializer, Parser, Poster, Creator幾個(gè)主要的模塊,并通過CompletionPort包裝為統(tǒng)一的接口。其中對于連接的監(jiān)聽采用了AcceptEx函數(shù)來實(shí)現(xiàn)異步的Accept,該過程定義在WatchProc所對應(yīng)的線程函數(shù)中。IOCPTest定義了服務(wù)端的測試接口,可以通過控制命令來實(shí)現(xiàn)對Server的Start, Stop, Suspend, Resume操作。
client下IClient定義了客戶端的接口,SocketClient實(shí)現(xiàn)了IClient,通過ConnectProc以及SendPacketProc兩個(gè)過程分別控制連接的建立和數(shù)據(jù)包的發(fā)送,并通過隊(duì)列來管理連接到Server的socket。ClientTest定義了Client端的測試接口,可以自行定義配置信息。
Server運(yùn)行的過程中會(huì)記錄日志文件,方便查看服務(wù)器的運(yùn)行狀態(tài)。

代碼片段和文件信息
?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----
?????文件???????37525??2018-10-26?18:44??IOCP_20130726_V1.7z
-----------?---------??----------?-----??----
?????文件???????37525??2018-10-26?18:44??IOCP_20130726_V1.7z
評論
共有 條評論