專利名稱:實(shí)現(xiàn)超大規(guī)模連接tcp/ip網(wǎng)絡(luò)的通信方法
技術(shù)領(lǐng)域:
本發(fā)明涉及ー種通信方法,具體的說(shuō),涉及了一種實(shí)現(xiàn)超大規(guī)模連接TCP/IP網(wǎng)絡(luò)的通信方法。
背景技術(shù):
在進(jìn)行C/S架構(gòu)軟件開(kāi)發(fā)的過(guò)程中,當(dāng)服務(wù)器面臨成千上百個(gè)連接時(shí),一個(gè)好的網(wǎng)絡(luò)模塊設(shè)計(jì)往往對(duì)系統(tǒng)的整體性能起著決定作用。在Windows下進(jìn)行網(wǎng)絡(luò)服務(wù)器開(kāi)發(fā)有多個(gè)網(wǎng)絡(luò)IO模型可供選擇,但進(jìn)行高并發(fā)服務(wù)器開(kāi)發(fā)時(shí),往往采用完成端ロ模型,但由于該模型比較復(fù)雜,在進(jìn)行使用時(shí),往往由于使 用方法不當(dāng)而使該模型發(fā)揮不出應(yīng)有的效率。為了解決以上存在的問(wèn)題,人們一直在尋求ー種理想的技術(shù)解決方案。
發(fā)明內(nèi)容
本發(fā)明的目的是針對(duì)現(xiàn)有技術(shù)的不足,從而提供一種簡(jiǎn)單易用、穩(wěn)定性強(qiáng)、容錯(cuò)能力好、運(yùn)行高效的實(shí)現(xiàn)超大規(guī)模連接TCP/IP網(wǎng)絡(luò)的通信方法。為了實(shí)現(xiàn)上述目的,本發(fā)明所采用的技術(shù)方案是一種實(shí)現(xiàn)超大規(guī)模連接TCP/IP網(wǎng)絡(luò)的通信方法,它利用面向?qū)ο蟮某绦蛟O(shè)計(jì)方法,對(duì)網(wǎng)絡(luò)IO模型進(jìn)行封裝并構(gòu)成網(wǎng)絡(luò)IO模塊,并通過(guò)該網(wǎng)絡(luò)IO模塊實(shí)現(xiàn)超大規(guī)模連接TCP/IP網(wǎng)絡(luò)的通信,包括以下步驟
步驟I、調(diào)用HHC0MM_Create O函數(shù),獲得ー個(gè)模塊句柄;
步驟2、使用ConnectInfo結(jié)構(gòu)體,填充節(jié)點(diǎn)信息,并調(diào)用HHC0MM_Init()函數(shù),初始化一個(gè)節(jié)點(diǎn);
步驟3、調(diào)用功能設(shè)置函數(shù),啟用或關(guān)閉有限特殊功能;
步驟4、調(diào)用HHCOMM_SetN0tifyHandle O函數(shù),設(shè)置ー個(gè)窗ロ消息或線程消息進(jìn)行數(shù)據(jù)接收;
步驟5、啟動(dòng)ー個(gè)線程或創(chuàng)建ー個(gè)窗ロ消息,處理函數(shù)接收數(shù)據(jù);
步驟6、調(diào)用HHC0MM_Start O函數(shù),啟動(dòng)網(wǎng)絡(luò)IO模塊開(kāi)始收發(fā)數(shù)據(jù)。本發(fā)明相對(duì)現(xiàn)有技術(shù)具有突出的實(shí)質(zhì)性特點(diǎn)和顯著進(jìn)步,具體的說(shuō),該網(wǎng)絡(luò)IO模塊隱藏了復(fù)雜的技術(shù)細(xì)節(jié),對(duì)外提供了簡(jiǎn)單易用的接ロ,使得開(kāi)發(fā)高并發(fā)網(wǎng)絡(luò)服務(wù)器變得簡(jiǎn)單而且高效;該方法具有簡(jiǎn)單易用、穩(wěn)定性強(qiáng)、容錯(cuò)能力好、運(yùn)行高效的優(yōu)點(diǎn)。
具體實(shí)施例方式下面通過(guò)具體實(shí)施方式
,對(duì)本發(fā)明的技術(shù)方案做進(jìn)ー步的詳細(xì)描述。一種實(shí)現(xiàn)超大規(guī)模連接TCP/IP網(wǎng)絡(luò)的通信方法,它利用面向?qū)ο蟮某绦蛟O(shè)計(jì)方法,對(duì)網(wǎng)絡(luò)IO模型進(jìn)行封裝并構(gòu)成網(wǎng)絡(luò)IO模塊,并通過(guò)該網(wǎng)絡(luò)IO模塊實(shí)現(xiàn)超大規(guī)模連接TCP/IP網(wǎng)絡(luò)的通信,包括以下步驟
步驟I、調(diào)用HHC0MM_Create O函數(shù),獲得ー個(gè)模塊句柄;步驟2、使用ConnectInfo結(jié)構(gòu)體,填充節(jié)點(diǎn)信息,并調(diào)用HHCOMM_Init()函數(shù),初始化一個(gè)節(jié)點(diǎn);
步驟3、根據(jù)需要,調(diào)用功能設(shè)置函數(shù),啟用或關(guān)閉有限特殊功能;
步驟4、調(diào)用HHCOMM_SetN0tifyHandle O函數(shù),設(shè)置ー個(gè)窗ロ消息或線程消息進(jìn)行數(shù)據(jù)接收;
步驟5、啟動(dòng)ー個(gè)線程或創(chuàng)建ー個(gè)窗ロ消息,處理函數(shù)接收數(shù)據(jù);
步驟6、調(diào)用HHCOMM_Start O函數(shù),啟動(dòng)網(wǎng)絡(luò)IO模塊開(kāi)始收發(fā)數(shù)據(jù)。該網(wǎng)絡(luò)IO模塊共提供了 26個(gè)函數(shù),該網(wǎng)絡(luò)IO模塊同時(shí)既可以做服務(wù)端也可以做客戶端,對(duì)用戶來(lái)說(shuō)不用關(guān)心節(jié)點(diǎn)是服務(wù)端還是客戶端,發(fā)送接收數(shù)據(jù)時(shí)只需要指定節(jié)點(diǎn)ID即可。該網(wǎng)絡(luò)IO模塊的功能有如下幾點(diǎn)1、可以調(diào)用在模塊啟動(dòng)后調(diào)用HHC0MM_AddConnect O動(dòng)態(tài)添加節(jié)點(diǎn)無(wú)需重啟模塊。2、可以通過(guò)調(diào)用HHCOMM_SetValidPeerIDs O添加合法的節(jié)點(diǎn),并通過(guò)調(diào)用 HHCOMM_SetParameter O 使用 PARAM_CHECK_ACCEPT_SOCKET_VALID參數(shù)啟用節(jié)點(diǎn)ID過(guò)濾功能。3、可以通過(guò)調(diào)用HHCOMiLRegLogListenerO并創(chuàng)建ー個(gè)函數(shù)進(jìn)行日志輸出輸出模塊運(yùn)行狀態(tài)。4、可以通過(guò)調(diào)用HHCOMM_GetParameter()和相關(guān)參數(shù)獲得內(nèi)存池和整個(gè)模塊內(nèi)存使用狀態(tài)。5、該模塊使用內(nèi)存池可以避免模塊頻繁分配釋放內(nèi)存,并保持內(nèi)存使用穩(wěn)定。6、給模塊可以對(duì)每個(gè)節(jié)點(diǎn)數(shù)據(jù)通信狀況進(jìn)行統(tǒng)計(jì),具體統(tǒng)計(jì)內(nèi)容見(jiàn)SocketStatInfo結(jié)構(gòu)體。7、該模塊支持簡(jiǎn)單的協(xié)議解析功能,并且用戶可以很容易將自己定義的協(xié)議加入到模塊中,目前支持微機(jī)監(jiān)測(cè)協(xié)議和智能分析協(xié)議。該網(wǎng)絡(luò)IO模塊通過(guò)現(xiàn)場(chǎng)檢驗(yàn),具有優(yōu)秀的穩(wěn)定性和很好的容錯(cuò)能力,并且由于采用面向?qū)ο蟮脑O(shè)計(jì)方法,具有很好的功能擴(kuò)展能力。我們利用模擬客戶端,對(duì)該模塊在1024個(gè)連接每個(gè)連接每秒發(fā)送一包IM的數(shù)據(jù)的環(huán)境進(jìn)行了測(cè)試,該模塊運(yùn)行狀態(tài)良好,CPU和內(nèi)存使用率都比較低;我們將該模塊使用到了我們的微機(jī)監(jiān)測(cè)服務(wù)器上,使用后跟以前比較,軟件的穩(wěn)定性和網(wǎng)絡(luò)吞吐能力得到了很大提尚。最后應(yīng)當(dāng)說(shuō)明的是以上實(shí)施例僅用以說(shuō)明本發(fā)明的技術(shù)方案而非對(duì)其限制;盡管參照較佳實(shí)施例對(duì)本發(fā)明進(jìn)行了詳細(xì)的說(shuō)明,所屬領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解依然 可以對(duì)本發(fā)明的具體實(shí)施方式
進(jìn)行修改或者對(duì)部分技術(shù)特征進(jìn)行等同替換;而不脫離本發(fā)明技術(shù)方案的精神,其均應(yīng)涵蓋在本發(fā)明請(qǐng)求保護(hù)的技術(shù)方案范圍當(dāng)中。
權(quán)利要求
1 一種實(shí)現(xiàn)超大規(guī)模連接TCP/IP網(wǎng)絡(luò)的通信方法,其特征在于利用面向?qū)ο蟮某绦蛟O(shè)計(jì)方法,對(duì)網(wǎng)絡(luò)IO模型進(jìn)行封裝并構(gòu)成網(wǎng)絡(luò)IO模塊,并通過(guò)該網(wǎng)絡(luò)IO模塊實(shí)現(xiàn)超大規(guī)模連接TCP/IP網(wǎng)絡(luò)的通信,包括以下步驟步驟I、調(diào)用HHC0MM_Create O函數(shù),獲得ー個(gè)模塊句柄;步驟2、使用ConnectInfo結(jié)構(gòu)體,填充節(jié)點(diǎn)信息,并調(diào)用HHCOMM_Init()函數(shù),初始化ー個(gè)節(jié)點(diǎn);步驟3、調(diào)用功能設(shè)置函數(shù),啟用或關(guān)閉有限特殊功能;步驟4、調(diào)用HHCOMM_SetNotifyHandle O函數(shù),設(shè)置ー個(gè)窗ロ消息或線程消息進(jìn)行數(shù)據(jù)接收;步驟5、啟動(dòng)ー個(gè)線程或創(chuàng)建ー個(gè)窗ロ消息,處理函數(shù)接收數(shù)據(jù);步驟6、調(diào)用HHCOMM_Start()函數(shù),啟動(dòng)網(wǎng)絡(luò)IO模塊開(kāi)始收發(fā)數(shù)據(jù)。
全文摘要
本發(fā)明提供一種實(shí)現(xiàn)超大規(guī)模連接TCP/IP網(wǎng)絡(luò)的通信方法,它利用面向?qū)ο蟮某绦蛟O(shè)計(jì)方法,封裝一個(gè)網(wǎng)絡(luò)IO模塊并通過(guò)它實(shí)現(xiàn)通信調(diào)用HHCOMM_Create()函數(shù),獲得模塊句柄;使用ConnectInfo結(jié)構(gòu)體,填充節(jié)點(diǎn)信息,并調(diào)用HHCOMM_Init()函數(shù),初始化節(jié)點(diǎn);調(diào)用功能設(shè)置函數(shù),啟用或關(guān)閉有限特殊功能;調(diào)用HHCOMM_SetNotifyHandle()函數(shù),設(shè)置窗口消息進(jìn)行數(shù)據(jù)接收;啟動(dòng)線程,處理函數(shù)接收數(shù)據(jù);調(diào)用HHCOMM_Start()函數(shù),啟動(dòng)模塊收發(fā)數(shù)據(jù)。該方法具有簡(jiǎn)單易用、穩(wěn)定性強(qiáng)、容錯(cuò)能力好、運(yùn)行高效的優(yōu)點(diǎn)。
文檔編號(hào)H04L29/06GK102685010SQ20121015116
公開(kāi)日2012年9月19日 申請(qǐng)日期2012年5月16日 優(yōu)先權(quán)日2012年5月16日
發(fā)明者石成, 趙春陽(yáng) 申請(qǐng)人:河南輝煌科技股份有限公司