国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      一種套接字連接池控制方法

      文檔序號:8005026閱讀:237來源:國知局
      一種套接字連接池控制方法
      【專利摘要】本發(fā)明提供了一種套接字連接池控制方法,包括步驟:a.接收獲取連接池內(nèi)套接字的請求信息;b.判斷所述連接池內(nèi)是否存在空閑的套接字;c.若存在空閑的套接字,則將所述套接字分配給上述請求信息對應(yīng)的請求。避免頻繁的創(chuàng)建套接字描述符,為系統(tǒng)節(jié)省套接字。同時(shí)采用所述套接字連接池,節(jié)省每次創(chuàng)建完套接字描述符后要建立連接的過程時(shí)間,以提高性能。
      【專利說明】一種套接字連接池控制方法
      【技術(shù)領(lǐng)域】
      [0001]本發(fā)明涉及套接字連接池控制方法,尤其是以Axcore和rtbclient通信為背景,具體的是涉及在ssp服務(wù)器端產(chǎn)生大量套接字后對套接字的統(tǒng)一支配管理的控制方法。
      【背景技術(shù)】
      [0002]Axcore和rtbclient通信中,當(dāng)大量用戶訪問時(shí),在SSP服務(wù)器端會采用短連接,導(dǎo)致頻繁的創(chuàng)建套接字描述符,由于套接字描述符主動(dòng)關(guān)閉端,會產(chǎn)生TIME_WAIT狀態(tài),這個(gè)狀態(tài)可能從半分鐘到兩分鐘不等,視系統(tǒng)而定。當(dāng)處于TIME_WAIT狀態(tài)時(shí),此套接字描述符是不可用的,從而使得系統(tǒng)套接字匱乏。
      [0003]針對上述問題我們采用長連接方案,即創(chuàng)建的套接字描述符不主動(dòng)關(guān)閉,只要此套接字描述符沒有損壞就一直可用。為了維護(hù)和統(tǒng)一管理這么多的長連接套接字,提出連接池的概念,簡單的來說:就是把建立好的處于連接狀態(tài)的套接字描述符都存放到一個(gè)容器中,當(dāng)需要套接字通信的時(shí)候,就從容器中取出來一個(gè)使用,當(dāng)使用完成后在放回容器。
      [0004]因此提出連接池的概念用于維護(hù)和管理套接字:一是不用頻繁的創(chuàng)建套接字描述符,為系統(tǒng)節(jié)省套接字。二是采用連接池的話,節(jié)省每次創(chuàng)建完套接字描述符后要建立連接的過程時(shí)間,以提高性能。
      [0005]所以發(fā)明人提出套接字連接池的概念對axcore和rtbclient通信中SSP端產(chǎn)生的套接字進(jìn)行統(tǒng)一集中管理分配。

      【發(fā)明內(nèi)容】

      [0006]針對現(xiàn)有axcore和rtbclient通信中SSP端產(chǎn)生大量套接字浪費(fèi)系統(tǒng)套接字?jǐn)?shù)量和浪費(fèi)套接字連接過程的時(shí)間問題,本發(fā)明提出一種套接字連接池控制方法。
      [0007]根據(jù)本發(fā)明的一個(gè)方面,提供一種套接字連接池控制方法包括步驟:a.接收獲取連接池內(nèi)套接字的請求信息;b.判斷所述連接池內(nèi)是否存在空閑的套接字;c.若存在空閑的套接字,則將所述套接字分配給上述請求信息對應(yīng)的請求。
      [0008]優(yōu)選地,還包括步驟:d.若不存在空閑的套接字,則進(jìn)一步判斷所述連接池內(nèi)的套接字?jǐn)?shù)量是否超過第二閾值;e.若所述連接池內(nèi)的套接字?jǐn)?shù)量小于所述第二閾值,則創(chuàng)建一個(gè)套接字,并將所述被創(chuàng)建的套接字分配給上述請求信息對應(yīng)的請求。
      [0009]本發(fā)明通過套接字連接池的概念為通信端提供套接字維護(hù)方法,并在套接字取用過程中實(shí)現(xiàn)對套接字有效的連接和釋放。進(jìn)一步的對不同終端采用不同監(jiān)聽方式優(yōu)化管理過程。避免頻繁的創(chuàng)建套接字描述符,為系統(tǒng)節(jié)省套接字。同時(shí)采用所述套接字連接池,節(jié)省每次創(chuàng)建完套接字描述符后要建立連接的過程時(shí)間,以提高性能。
      【專利附圖】

      【附圖說明】
      [0010]通過閱讀參照一下附圖對非限制性實(shí)習(xí)例所作的詳細(xì)描述,本發(fā)明的其它特征,優(yōu)勢,結(jié)構(gòu)將會變得更明顯[0011]圖1示出根據(jù)本發(fā)明的第一實(shí)施例的,套接字連接池的總流程圖;
      [0012]圖2示出根據(jù)本發(fā)明的第一實(shí)施例的,套接字連接池的實(shí)現(xiàn)流程圖;
      [0013]圖3示出根據(jù)本發(fā)明的第一實(shí)施例的,套接字連接池的初始化流程圖;
      [0014]圖4示出根據(jù)本發(fā)明的第一實(shí)施例的,套接字連接池在取用套接字時(shí)的流程圖;
      [0015]圖5示出根據(jù)本發(fā)明的第一實(shí)施例的,套接字連接池在放回套接字時(shí)的流程圖;
      [0016]圖6示出根據(jù)本發(fā)明的第一實(shí)施例的,套接字連接池的網(wǎng)絡(luò)拓?fù)鋱D;以及
      [0017]圖7示出根據(jù)本發(fā)明的第一實(shí)施例的,套接字鏈表被處理過程的示意圖。
      【具體實(shí)施方式】
      [0018]圖1示出根據(jù)本發(fā)明的第一實(shí)施例的,一種套接字連接池的控制方法的實(shí)現(xiàn)方案的概要圖。本領(lǐng)域技術(shù)人員理解,在本實(shí)施例中所述的套接字連接池優(yōu)選地應(yīng)用于需要多次通訊的通訊組件中,例如服務(wù)器與客戶端的通訊,或者多個(gè)客戶端直接的通訊等等。具體地,在本實(shí)施例中,首先要建立連接池。優(yōu)選地,本領(lǐng)域技術(shù)人員理解,就是把建立好的處于連接狀態(tài)的套接字都存放到一個(gè)容器中,當(dāng)需要套接字通信的時(shí)候,就從容器中取出來一個(gè)使用,當(dāng)使用完成后在放回容器。
      [0019]進(jìn)一步地,優(yōu)選地,本領(lǐng)域技術(shù)人員理解,為了實(shí)現(xiàn)套接字連接池的控制方法,首先要執(zhí)行步驟S110,接收獲取連接池內(nèi)套接字的請求信息。優(yōu)選地,本領(lǐng)域技術(shù)人員理解,在本實(shí)施例中,客戶端或者終端首先向服務(wù)器發(fā)出獲取套接字的請求信息。具體地,在本實(shí)例中,在客戶端發(fā)起要取用套接字的請求信息后,服務(wù)端的服務(wù)器對所述客戶端發(fā)起取用套接字的請求信息進(jìn)行接收。例如,客戶端和服務(wù)器端建立連接后某進(jìn)程需要使用套接字,則所述進(jìn)程向端口發(fā)出請求信息,所述請求信息為要求分配空閑套接字請求信息。端口對所述請求信息進(jìn)行接收,從而準(zhǔn)備后續(xù)工作。更為具體地,本領(lǐng)域技術(shù)人員理解,線程調(diào)用連接池提供的接口函數(shù),向函數(shù)傳遞dsp的ip和port信息,此接口函數(shù)根據(jù)ip和port組成的關(guān)鍵字(key)去map容器中去獲取所述套接字信息。
      [0020]進(jìn)一步地,優(yōu)選地,本領(lǐng)域技術(shù)人員理解,為了實(shí)現(xiàn)套接字連接池對套接字的分配,要執(zhí)行步驟S111,對所述套接字連接池內(nèi)是否存在空閑的套接字做出判斷。優(yōu)選地,本領(lǐng)域技術(shù)人員理解,在本實(shí)施例中,客戶端和服務(wù)器端建立連接后如果有線程需要獲取套接字,則系統(tǒng)要判斷是否有空閑的套接字分配給所述線程,并以此判斷為根據(jù)對系統(tǒng)后續(xù)一系列動(dòng)作做出響應(yīng)。具體地,在本實(shí)施例中,當(dāng)有線程要獲取套接字,系統(tǒng)根據(jù)所述套接字連接池內(nèi)的套接字狀態(tài)對所述線程的獲取套接字信息進(jìn)行回應(yīng)。例如,當(dāng)線程提出取用套接字時(shí),系統(tǒng)要決定是從所述套接字連接池內(nèi)分配給所述線程還是由系統(tǒng)重新創(chuàng)建套接字分配給所述線程。所述決定都依賴于對所述套接字連接池內(nèi)是否存在空閑的套接字做出判斷。本領(lǐng)域技術(shù)人員理解,所述獲取套接字的線程優(yōu)選地是當(dāng)前進(jìn)程的線程。
      [0021 ] 進(jìn)一步地,優(yōu)選地,本領(lǐng)域技術(shù)人員理解,若所述套接字連接池內(nèi)存在空閑的套接字,則執(zhí)行步驟S112,將所述套接字分配給上述請求信息對應(yīng)的請求。具體地,本領(lǐng)域技術(shù)人員理解,在本實(shí)施例中,若所述套接字連接池內(nèi)存在空閑的套接字,所述空閑套接字通過狀態(tài)監(jiān)聽,判斷為連接成功狀態(tài)。則將所述連接成功狀態(tài)的套接字分配給所述請求信息對應(yīng)的請求。進(jìn)一步地,本領(lǐng)域技術(shù)人員理解,在后續(xù)實(shí)施例中,我們會闡述如何進(jìn)行狀態(tài)監(jiān)聽,判斷所述套接字是否為連接成功狀態(tài)。[0022]進(jìn)一步地,優(yōu)選地,本領(lǐng)域技術(shù)人員理解,若所述套接字連接池內(nèi)不存在空閑的套接字,則執(zhí)行步驟S113,進(jìn)一步判斷所述套接字?jǐn)?shù)量是否超過第二閾值。具體地,本領(lǐng)域技術(shù)人員理解,若所述連接池內(nèi)的套接字?jǐn)?shù)量小于所述第二閾值,則創(chuàng)建一個(gè)套接字,并將所述被創(chuàng)建的套接字分配給上述請求信息對應(yīng)的請求。進(jìn)一步地,本領(lǐng)域技術(shù)人員理解,在后續(xù)實(shí)施例中,我們會闡述如何創(chuàng)建套接字。
      [0023]進(jìn)一步地,優(yōu)選地,本領(lǐng)域技術(shù)人員理解,為了實(shí)現(xiàn)套接字連接池對套接字的回收,要執(zhí)行步驟SI 14,獲取釋放套接字的控制信息。優(yōu)選地,本領(lǐng)域技術(shù)人員理解,在本實(shí)施例中,當(dāng)所述線程成功獲取套接字,系統(tǒng)對所述被分配套接字處理完成后,需要獲取是否套接字的控制信息,使得在處理完所述被成功獲取的套接字后能繼續(xù)放回所述套接字連接池內(nèi)。例如,某線程獲取套接字并對所述套接字處理完成后要放回所述連接池內(nèi)繼續(xù)供其他線程所使用,所以,在所述套接字處理完成后要將所述套接字的控制信息進(jìn)行釋放,以便于后續(xù)對所述套接字狀態(tài)的判斷,從而能決定是否要將所述套接字放回連接池備用。
      [0024]圖2示出根據(jù)本發(fā)明的第一實(shí)施例的,一種套接字連接池的控制方法的實(shí)現(xiàn)方案的實(shí)現(xiàn)流程圖。具體地,本實(shí)施例描述了套接字連接池的建立、管理的總體流程或者說概括流程。優(yōu)選地,本領(lǐng)域技術(shù)人員理解,在本實(shí)施例中,我們以axcore (即ssp內(nèi)核)端和rtbclient端為例來描述連接池的建立以及管理過程。本領(lǐng)域技術(shù)人員理解,優(yōu)選地,在axcore端,當(dāng)apache啟動(dòng)時(shí)創(chuàng)建一定數(shù)量的套接字,并把這些套接字存入STL(StandardTemplate Library,標(biāo)準(zhǔn)模板庫)的容器中,而容器是采用map數(shù)據(jù)結(jié)構(gòu)對其中的套接字結(jié)構(gòu)進(jìn)行存儲。并且對存入容器的套接字采用長連接的方式維護(hù)其連接的狀態(tài),從而達(dá)到隨時(shí)取用的目的。本領(lǐng)域技術(shù)人員理解,以此可以實(shí)現(xiàn)連接池控制方法。本領(lǐng)域技術(shù)人員理解,上述rbtclient為本系統(tǒng)所定義的一個(gè)客戶端,其具有本發(fā)明所描述的功能和技術(shù)要求,在此不予贅述。
      [0025]進(jìn)一步地,優(yōu)選地,本領(lǐng)域技術(shù)人員理解,首先進(jìn)程發(fā)出獲取套接字的請求信息,然后由系統(tǒng)接收獲取套接字的請求信息,接下來開始取用連接池內(nèi)的套接字。在取用連接池內(nèi)套接字時(shí)要執(zhí)行步驟S210,判斷連接池內(nèi)是否有空閑套接字。具體地,本領(lǐng)域技術(shù)人員理解,判斷所述連接池內(nèi)是否存在套接字,并根據(jù)判斷結(jié)果進(jìn)行相應(yīng)的處理。優(yōu)選地,本領(lǐng)域技術(shù)人員理解,在本實(shí)施例中,若所述連接池內(nèi)不存在套接字,則重復(fù)創(chuàng)建套接字直至所述連接池內(nèi)的套接字?jǐn)?shù)量等于所述第一閾值。具體地,本領(lǐng)域技術(shù)人員理解,若所述連接池內(nèi)的套接字?jǐn)?shù)量不超過所述第一閾值,則創(chuàng)建到與第一閾值相等的套接字,并將所述第一閾值的套接字放入所述連接池內(nèi)供進(jìn)程調(diào)用。進(jìn)一步地,本領(lǐng)域技術(shù)人員理解,在后續(xù)實(shí)施例中,我們會闡述如何創(chuàng)建套接字。
      [0026]更進(jìn)一步地,本領(lǐng)域技術(shù)人員理解,若連接池內(nèi)存在空閑套接字,創(chuàng)建套接字過程中需要執(zhí)行步驟S211,判斷所需套接字?jǐn)?shù)量是否大于所述套接字連接池內(nèi)套接字現(xiàn)有數(shù)量,所述套接字連接池內(nèi)套接字現(xiàn)有數(shù)量為第二閾值減去已經(jīng)被分配的套接字?jǐn)?shù)量。如果所需套接字?jǐn)?shù)量大于所述套接字連接池內(nèi)套接字現(xiàn)有數(shù)量則取用連接池內(nèi)所有套接字并由系統(tǒng)重新分配剩余需要數(shù)量的套接字。如果小于所述套接字連接池內(nèi)套接字現(xiàn)有數(shù)量則直接分配給進(jìn)程所需的套接字。例如,連接池內(nèi)套接字最大存放量為1000個(gè)套接字,已經(jīng)分配給其他線程500個(gè)套接字,則接池內(nèi)現(xiàn)有500個(gè)套接字,若當(dāng)前線程所需套接字?jǐn)?shù)量為900個(gè)套接字,則先分配連接池內(nèi)500個(gè)套接字,然后由系統(tǒng)重新創(chuàng)建400個(gè)套接字供所述當(dāng)前線程使用。
      [0027]進(jìn)一步地,優(yōu)選地,本領(lǐng)域技術(shù)人員理解,在另一變化例中,當(dāng)所需套接字的數(shù)量大于連接池內(nèi)的現(xiàn)有套接字?jǐn)?shù)量時(shí)可以直接由系統(tǒng)創(chuàng)建所需數(shù)量的套接字,供線程使用。當(dāng)所述系統(tǒng)創(chuàng)建的套接字處理完畢后,不放入所述套接字連接池內(nèi)保持長連接的狀態(tài),而是自動(dòng)關(guān)閉,不影響所述套接字連接池內(nèi)的套接字分配情況。例如,連接池內(nèi)套接字最大存放量為1000個(gè)套接字,已經(jīng)分配給其他線程500個(gè)套接字連,接池內(nèi)現(xiàn)有500個(gè)套接字時(shí),當(dāng)當(dāng)前線程所需套接字?jǐn)?shù)量為900個(gè)套接字,則由系統(tǒng)重新創(chuàng)建900個(gè)套接字供所述當(dāng)前線程使用。對所述創(chuàng)建的900個(gè)套接字處理完成后自動(dòng)關(guān)閉,對所述套接字連接池內(nèi)現(xiàn)有的500個(gè)套接字的分配不產(chǎn)生影響。
      [0028]進(jìn)一步地,優(yōu)選地,本領(lǐng)域技術(shù)人員理解,在本實(shí)施例中,要把處理完成的套接字放回連接池前要執(zhí)行步驟S212,判斷釋放后套接字的數(shù)量是否大于第二閾值,如果所述釋放后套接字的數(shù)量大于第二閾值則關(guān)閉比第二閾值多余出的套接字,如果所述釋放后套接字的數(shù)量小于第二閾值則放回到連接池中。例如,釋放后套接字連接池內(nèi)套接字?jǐn)?shù)量為1100大于連接池內(nèi)套接字最大存放量1000,則將多余的100個(gè)套接字關(guān)閉,剩余的套接字放回到連接池內(nèi)。
      [0029]進(jìn)一步地,優(yōu)選地,本領(lǐng)域技術(shù)人員理解,在另一變化例中,可以設(shè)置每次放回連接池內(nèi)的套接字的最大值和累積連續(xù)放回次數(shù)。例如,每次最多放回100個(gè)套接字,剩余套接字關(guān)閉,最多累積連續(xù)放回12次。保持所述套接字連接池內(nèi)的套接字有上限值,避免系統(tǒng)創(chuàng)建太多套接字放入所述套接字連接池內(nèi),浪費(fèi)系統(tǒng)套接字資源。
      [0030]圖3示出根據(jù)本發(fā)明的第一實(shí)施例的,一種套接字連接池的控制方法的實(shí)現(xiàn)方案的初始化流程圖。具體地,及為所述套接字連接池實(shí)現(xiàn)建立的流程圖。優(yōu)選地,本領(lǐng)域技術(shù)人員理解,在本實(shí)施例中,初始化的過程首先執(zhí)行步驟S310,確定關(guān)鍵字key。具體地,本領(lǐng)域技術(shù)人員理解,采用關(guān)鍵字key對應(yīng)指定鏈表,從而統(tǒng)一提供給控制信息。具體地,本領(lǐng)域技術(shù)人員理解,在本實(shí)施例中,采用用ip和port值組成關(guān)鍵字key,在另一變化例中,可采用其他通信值組成關(guān)鍵字key,對應(yīng)所述指定鏈表。但這并不影響本發(fā)明的實(shí)質(zhì)內(nèi)容,在此不予贅述。優(yōu)選地,本領(lǐng)域技術(shù)人員理解,組成所述關(guān)鍵字key后,要執(zhí)行步驟S311,判斷所述關(guān)鍵字key是否存在。具體地,本領(lǐng)域技術(shù)人員理解,所述關(guān)鍵字key對應(yīng)特定的鏈表,鏈表中存放有套接字。所述存放有套接字的鏈表組成套接字連接池。優(yōu)選地,本領(lǐng)域技術(shù)人員理解,若所述關(guān)鍵字已經(jīng)存在,那么所述套接字連接池內(nèi)有所述關(guān)鍵字對應(yīng)的特定鏈表。具體地,本領(lǐng)域技術(shù)人員理解,將空閑的處于連接狀態(tài)的套接字插入所述特定鏈表。從而使連接池內(nèi)的特定鏈表不為空,及連接池內(nèi)有可以取用的套接字。
      [0031]進(jìn)一步地,優(yōu)選地,本領(lǐng)域技術(shù)人員理解,要將可用套接字存入到所述特定的鏈表中,首先要執(zhí)行步驟S312,篩選套接字。優(yōu)選地,本領(lǐng)域技術(shù)人員理解,在使用過程中,所述連接池內(nèi)的套接字可能被某一端關(guān)閉,從而沒有處于連接的狀態(tài),從而需要對所述連接池內(nèi)的套接字進(jìn)行篩選,判斷所述套接字是否連接成功,若所述套接字連接成功,則將所述套接字作為可以加入所述連接池的套接字,并將所述連接成功的套接字加入到一特定鏈表等待分配給進(jìn)程。具體地,本領(lǐng)域技術(shù)人員理解,在篩選過程中要執(zhí)行步驟S313,判斷套接字是否連接成功。優(yōu)選地,本領(lǐng)域技術(shù)人員理解,對所述套接字的篩選過程通過客戶端和服務(wù)器端對套接字狀態(tài)的監(jiān)聽實(shí)現(xiàn)。優(yōu)選地,本領(lǐng)域技術(shù)人員理解,在本實(shí)施例中,如果兩端套接字監(jiān)聽結(jié)果均為連接則篩選成功,將所述篩選成功的套接字加入所述關(guān)鍵字key值所對應(yīng)的指定鏈表中,將沒有通過篩選的套接字刪除掉后重復(fù)上述篩選過程,直至得到與第一閾值相等數(shù)量的套接字。優(yōu)選地,本領(lǐng)域技術(shù)人員理解,若所述關(guān)鍵字不存在,則創(chuàng)建所述關(guān)鍵字key值對應(yīng)的鏈表。然后創(chuàng)建新的套接字進(jìn)行上述篩選后存入新創(chuàng)建的所述關(guān)鍵字key值對應(yīng)的鏈表。優(yōu)選地,本領(lǐng)域技術(shù)人員理解,在本實(shí)施例中,若所述連接池內(nèi)的套接字?jǐn)?shù)量不超過所述第一閾值,則創(chuàng)建到與第一閾值相等的套接字,并將所述第一閾值的套接字放入所述連接池內(nèi)。
      [0032]進(jìn)一步地,優(yōu)選地,本領(lǐng)域技術(shù)人員理解,在上述實(shí)施例中,對套接字的篩選過程在將所述套接字插入到特定鏈表前。在另一變化例中,可以將所有套接字都插入鏈表后再進(jìn)行篩選,判斷套接字是否連接成功。連接成功的套接字保留在所述特定鏈表中,連接不成功的套接字則從鏈表中刪除所述連接不成功的套接字。
      [0033]更進(jìn)一步地,優(yōu)選地,本領(lǐng)域技術(shù)人員理解,所述將所述套接字加入一特定鏈表要判斷所述特定鏈表是否存在,若所述特定鏈表存在,則直接將所述套接字加入所述特定鏈表,若所述特定鏈表不存在,則新建所述特定鏈表,并將所述套接字加入所述特定鏈表。優(yōu)選地,本領(lǐng)域技術(shù)人員理解,要對所述特定鏈表進(jìn)行封裝,所述封裝過程將多少特定鏈表用指針相連接,以使得所述特定鏈表構(gòu)成所述連接池。
      [0034]進(jìn)一步地,本領(lǐng)域技術(shù)人員理解,在本實(shí)施例中,采用指針將鏈表相連接,便于對所述套接字連接池的管理。在另一實(shí)施例中,采用數(shù)組的方式存放所述套接字,則同樣可以采用指針進(jìn)行連接。也可以不使用指針,直接采用數(shù)組的形式。優(yōu)選地,本領(lǐng)域技術(shù)人員理解,數(shù)組直接存放套接字的地址,則通過各個(gè)套接字的地址來管理所述套接字連接池。但這并不影響本發(fā)明的實(shí)質(zhì)內(nèi)容,在此不予贅述。
      [0035]更進(jìn)一步地,優(yōu)選地,本領(lǐng)域技術(shù)人員理解,所述篩選過程涉及到服務(wù)器端對套接字描述符的監(jiān)聽和客戶端對套接字描述符的監(jiān)聽,從而判斷所述套接字是否仍保持長連接的狀態(tài)而沒有自動(dòng)關(guān)閉。優(yōu)選地,本領(lǐng)域技術(shù)人員理解,采用select對所述客戶端的套接字進(jìn)行監(jiān)聽,判斷所述客戶端的套接字是否連接正常。采用epoll模型對所述服務(wù)器端的套接字進(jìn)行監(jiān)聽,判斷所述服務(wù)器端的套接字是否連接正常。當(dāng)所述服務(wù)器端和客戶端監(jiān)聽的套接字均為正常連接狀態(tài)則待取用,否則關(guān)閉套接字。優(yōu)選地,本領(lǐng)域技術(shù)人員理解,還可以采用其他模型對服務(wù)器和客戶端的套接字進(jìn)行監(jiān)聽。但這并不影響本發(fā)明的實(shí)質(zhì)內(nèi)容,在此不予贅述。
      [0036]進(jìn)一步地,優(yōu)選地,本領(lǐng)域技術(shù)人員理解,創(chuàng)建好所需數(shù)量的套接字并通過篩選成功插入指定鏈表中后,采用map的數(shù)據(jù)結(jié)構(gòu)方式對所述指定鏈表進(jìn)行順序管理。優(yōu)選地,本領(lǐng)域技術(shù)人員理解,之后把這些鏈表存入STL (Standard Template Library,標(biāo)準(zhǔn)模板庫))的容器中,容器是采用map數(shù)據(jù)結(jié)構(gòu)對其中的套接字結(jié)構(gòu)進(jìn)行存儲,從而完成整個(gè)套接字連接池的初始化建立。同時(shí)所述套接字連接池內(nèi)的套接字均要保持長連接的狀態(tài)不關(guān)閉。
      [0037]進(jìn)一步地,本領(lǐng)域技術(shù)人員理解,優(yōu)選地,在本實(shí)施例中,發(fā)明人采用鏈表的方式存儲套接字,并形成所述套接字連接池。優(yōu)選地,本領(lǐng)域技術(shù)人員理解,在另一變化例中,還可以采用數(shù)組的方式存放所述套接字,具體地,將套接字以數(shù)組的方式進(jìn)行管理,所述套接字的控制信息均來自數(shù)組的控制信息,通過插入或者移除數(shù)組實(shí)現(xiàn)對套接字的取用和放回。優(yōu)選地,本領(lǐng)域技術(shù)人員理解,然后采用存放套接字的數(shù)組組成所述套接字連接池。但這不影響本發(fā)明的實(shí)質(zhì)內(nèi)容,在此不予贅述。
      [0038]圖4示出根據(jù)本發(fā)明的第一實(shí)施例的,套接字連接池在取用套接字時(shí)的流程圖。優(yōu)選地,本領(lǐng)域技術(shù)人員理解,從所述套接字連接池內(nèi)取用套接字時(shí),首先要根據(jù)所述請求信息確定本次請求對應(yīng)的關(guān)鍵字,然后執(zhí)行步驟S410,判斷所述套接字連接池內(nèi)是否存在相應(yīng)的關(guān)鍵字key。具體地,本領(lǐng)域技術(shù)人員理解,在本實(shí)施例中,在所述連接池內(nèi)查找與所述關(guān)鍵字對應(yīng)的特定鏈表。優(yōu)選地,本領(lǐng)域技術(shù)人員理解,在本實(shí)施例中,當(dāng)取用所述連接池內(nèi)套接字時(shí),根據(jù)進(jìn)程提供的ip和port組成關(guān)鍵字key進(jìn)行后續(xù)處理。根據(jù)所述關(guān)鍵字key判斷所述套接字連接池內(nèi)有沒有對應(yīng)的特定鏈表,從而在特定鏈表中查找可以進(jìn)行分配的套接字。若所述特定鏈表內(nèi)不存在可用套接字,則創(chuàng)建一個(gè)與所述關(guān)鍵字對應(yīng)的套接字,并將所述套接字分配給所述請求信息對應(yīng)的請求。執(zhí)行步驟S413,返回所述新創(chuàng)建的與所述關(guān)鍵字對應(yīng)的套接字,并將所述對應(yīng)的套接字存入關(guān)鍵字對應(yīng)的鏈表,供進(jìn)程使用。若所述特定鏈表內(nèi)存在可用套接字,則根據(jù)所述請求信息分配對應(yīng)的套接字給所述請求信息對應(yīng)的請求。
      [0039]進(jìn)一步地,優(yōu)選地,本領(lǐng)域技術(shù)人員理解,對關(guān)鍵字key對應(yīng)的鏈表進(jìn)行加鎖,防止其它線程競爭所述關(guān)鍵字key對應(yīng)的鏈表。然后執(zhí)行步驟S411,判斷所述關(guān)鍵字key對應(yīng)的鏈表是否為空,如果所述鏈表不為空,則將所述key對應(yīng)的鏈表中的第一個(gè)套接字取出,解鎖關(guān)鍵字key對應(yīng)的鏈表的線程鎖。具體地,本領(lǐng)域技術(shù)人員理解,將所述被鎖定的特定鏈表解鎖。然后判斷所述對應(yīng)套接字是否處于連接狀態(tài),優(yōu)選地,本領(lǐng)域技術(shù)人員理解,在本實(shí)施例中,鏈表解鎖后判定套接字是否可用,具體地,本領(lǐng)域技術(shù)人員理解,所述鏈表解鎖后判定套接字可用則將該套接字分配給請求信息,不可用則繼續(xù)上述步驟獲取套接字。具體地,本領(lǐng)域技術(shù)人員理解,所述判定套接字是否可用要通過篩選所述套接字,查看套接字狀態(tài),如果所述套接字狀態(tài)為連接狀態(tài)則判定所述對應(yīng)套接字可用,返回所述套接字。如果所述套接字狀態(tài)為連接狀態(tài)則從新在所述套接字連接池內(nèi)實(shí)施取用步驟。
      [0040]進(jìn)一步地,本領(lǐng)域技術(shù)人員理解,在本實(shí)施例中,如果所述關(guān)鍵字key對應(yīng)鏈表為空,則創(chuàng)建新的套接字,所述創(chuàng)建新的套接字完成后繼續(xù)對套接字的篩選步驟S412,判斷套接字是否連接成功。在上述圖2中已經(jīng)詳細(xì)介紹所述對套接字的篩選過程,在此不予贅述。如果所述套接字連接成功則解鎖key對應(yīng)的鏈表的線程鎖。所述套接字連接成功則可用,返回所述套接字。結(jié)束取用過程。
      [0041]本領(lǐng)域技術(shù)人員理解,在上述實(shí)施例的一個(gè)變化例中,所述對關(guān)鍵字key對應(yīng)的鏈表進(jìn)行鎖操作步驟不可以被省略,在這樣的變化例中,若有其他線程競爭所述套接字,則將所述套接字分配給優(yōu)先調(diào)用的線程,后續(xù)線程繼續(xù)執(zhí)行步驟S410,判斷所述套接字連接池內(nèi)是否存在相應(yīng)的關(guān)鍵字key,若存在則對key所對應(yīng)的鏈表加鎖,此線程獲得鎖后繼續(xù)執(zhí)行步驟S411,判斷所述關(guān)鍵字key對應(yīng)的鏈表是否為空,如果所述鏈表為不為空,則將所述對應(yīng)套接字插入進(jìn)程調(diào)用鏈表,直到獲取到需要的套接字為止。而在另一個(gè)變化例中,所述對關(guān)鍵字key對應(yīng)的鏈表進(jìn)行鎖操作的步驟可以被對關(guān)鍵字key對應(yīng)的鏈表進(jìn)行狀態(tài)判定的步驟所替代,即當(dāng)所述關(guān)鍵字key對應(yīng)的鏈表被處理時(shí),限定所述鏈表狀態(tài)為wait。優(yōu)選地,本領(lǐng)域技術(shù)人員理解,此時(shí),當(dāng)其它線程同樣對應(yīng)所述鏈表時(shí),先讀取所述鏈表的狀態(tài),若為wait,則等待所述鏈表處理完畢后再進(jìn)行上述后續(xù)操作。若所述鏈表狀態(tài)不為wait,則直接進(jìn)行上述后續(xù)操作。[0042]圖5示出根據(jù)本發(fā)明的第一實(shí)施例的,套接字連接池在放回套接字時(shí)的流程圖。優(yōu)選地,本領(lǐng)域技術(shù)人員理解,在本實(shí)施例中,當(dāng)所述被分配的套接字處理完成后要防止所述被分配的套接字自動(dòng)關(guān)閉,要放回所述套接字連接池內(nèi)保持長連接的狀態(tài)。以便于下次有線程需要獲取套接字時(shí),可以一定程度上免去重新創(chuàng)建套接字的過程,直接將所述套接字連接池內(nèi)的空閑套接字分配給所述線程。例如,線程a成功獲取套接字后對所述套接字進(jìn)行處理,當(dāng)處理完成后不直接自動(dòng)關(guān)閉,被系統(tǒng)回收,而是放回到所述套接字連接池中,繼續(xù)保持連接的狀態(tài),以便下一次其他線程b獲取所述套接字。優(yōu)選地,本領(lǐng)域技術(shù)人員理解,在本實(shí)施例中,當(dāng)所述套接字要放回到所述套接字連接池內(nèi)時(shí),首先要執(zhí)行步驟S510,載入處理完成的套接字鏈表。等待釋放連接請求信息,判斷處理完成的套接字鏈表是否為空,如果不為空則釋放連接,將套接字放回所述連接池。優(yōu)選地,本領(lǐng)域技術(shù)人員理解,所述處理完成的套接字是線程在取用的套接字,在所述被取用的套接字被處理完畢后,要進(jìn)行回收處理。優(yōu)選地,在本實(shí)施例中,所述回收處理指將所述處理完成的套接字放回所述套接字連接池。
      [0043]進(jìn)一步地,優(yōu)選地,本領(lǐng)域技術(shù)人員理解,在本實(shí)施例中采用不斷取用,放回的方式對套接字進(jìn)行管理。在另一變化例中,對所述套接字處理完成后,也可以將所述處理完成的套接字直接關(guān)閉,同時(shí)在所述套接字連接池內(nèi)分配套接字的時(shí)候就重建新的套接字,存放到所述套接字連接池內(nèi),提供給不同的線程使用。
      [0044]進(jìn)一步地,優(yōu)選地,本領(lǐng)域技術(shù)人員理解,在本實(shí)施例中,要對所述處理完成的套接字鏈表進(jìn)行處理,首先要執(zhí)行步驟S511,判斷所述處理完成的套接字鏈表是否為空。具體地,本領(lǐng)域技術(shù)人員理解,系統(tǒng)要等待釋放連接請求信息,判斷處理完成的套接字鏈表是否為空,如果不為空則釋放套接字,將套接字放回所述連接池。若所述處理完成的套接字鏈表為空,則等待下一次請求信息,然后根據(jù)下一次的請求信息做出相應(yīng)處理。優(yōu)選地,本領(lǐng)域技術(shù)人員理解,所述將套接字放回所述套接字連接池要先獲取所述處理完成的套接字鏈表對應(yīng)的關(guān)鍵字key。具體地,本領(lǐng)域技術(shù)人員理解,在本實(shí)施例中,關(guān)鍵字key對應(yīng)特定鏈表,獲取所述處理完成的套接字鏈表的關(guān)鍵字key使得將該特定鏈表按關(guān)鍵字key放回到所述套接字連接池內(nèi),等待后續(xù)請求信息請求調(diào)用。
      [0045]進(jìn)一步地,優(yōu)選地,本領(lǐng)域技術(shù)人員理解,獲取所述套接字對應(yīng)的關(guān)鍵字key,執(zhí)行步驟S512,判斷連接池內(nèi)有沒有對應(yīng)的key值。具體地,優(yōu)選地,本領(lǐng)域技術(shù)人員理解,要獲取鏈表內(nèi)套接字對應(yīng)的關(guān)鍵字key。判斷連接池內(nèi)是否存在匹配的關(guān)鍵字,若存在所述匹配關(guān)鍵字則將所述套接字插入到所述連接池內(nèi)匹配的關(guān)鍵字所對應(yīng)的鏈表中。若不存在所述匹配關(guān)鍵字則將所述套接字刪除。所述將所述套接字插入到所述連接池內(nèi)匹配的關(guān)鍵字所對應(yīng)的鏈表中,首先判斷關(guān)鍵字key對應(yīng)鏈表的大小是否小于第二閾值并做出相應(yīng)處理。具體地,本領(lǐng)域技術(shù)人員理解,如果所述關(guān)鍵字key對應(yīng)鏈表的大小不小于第二閾值,則刪除該鏈表內(nèi)多余的套接字。如果所述關(guān)鍵字對應(yīng)的鏈表內(nèi)套接字?jǐn)?shù)量小于第二閾值,則將該套接字插入到連接池內(nèi)匹配的關(guān)鍵字所對應(yīng)的鏈表中。若所述套接字的數(shù)量小于所述第一閾值,則創(chuàng)建和第一閾值相等的套接字,并且存放于容器中。然后執(zhí)行步驟S514,解鎖關(guān)鍵字key對應(yīng)鏈表的線程鎖。完成所述套接字返回所述套接字連接池工作。
      [0046]圖6示出根據(jù)本發(fā)明的第一實(shí)施例的,套接字連接池的網(wǎng)絡(luò)拓?fù)鋱D。具體地,本領(lǐng)域技術(shù)人員理解,在實(shí)施例中,包括客戶端I和服務(wù)器端2,所述客戶端I和服務(wù)器端2通信連接過程中要使用套接字則從套接字連接池3中獲取套接字5,當(dāng)處理完成后將套接字5再放回所述套接字連接池3中。優(yōu)選地,本領(lǐng)域技術(shù)人員理解,所述套接字連接池內(nèi)為不同的關(guān)鍵字key所對應(yīng)的不同特定鏈表。每個(gè)鏈表中存放有一定數(shù)量的套接字。
      [0047]進(jìn)一步地,優(yōu)選地,本領(lǐng)域技術(shù)人員理解,當(dāng)系統(tǒng)接收獲取連接池內(nèi)套接字的請求信息后,根據(jù)線程提供的ip和port值組成關(guān)鍵字key,然后從所述套接字連接池3內(nèi)找到對應(yīng)的關(guān)鍵字key,并從所述對應(yīng)的關(guān)鍵字key對應(yīng)的特定鏈表里篩選出可以分配的套接字。優(yōu)選地,本領(lǐng)域技術(shù)人員理解,篩選出所述可以分配的套接字5后,將套接字分配給發(fā)出獲取連接池內(nèi)套接字請求信息的線程。優(yōu)選地,本領(lǐng)域技術(shù)人員理解,套接字5處理完成后要放回所述套接字連接池3內(nèi)。
      [0048]進(jìn)一步地,優(yōu)選地,本領(lǐng)域技術(shù)人員理解,放回到連接池內(nèi)要獲得套接字所在鏈表對應(yīng)的關(guān)鍵字key,然后在所述套接字連接池3內(nèi)查找對應(yīng)的關(guān)鍵字對應(yīng)的特定鏈表,找到所述對應(yīng)的特定鏈表后將所述套接字5放回到所述特定鏈表中,保持長連接的狀態(tài)。完成套接字連接池管理和維護(hù)套接字的過程。
      [0049]參考上述圖1至圖6所示實(shí)施例,本領(lǐng)域技術(shù)人員理解,上述port優(yōu)選地是與我們服務(wù)器通信的dsp (英文全稱為:Demand Side Platform),若有多家dsp就會有條鏈表,
      每條鏈表中存放的是與關(guān)鍵字(ip+port組成)--對應(yīng)的。所述ip為dsp的域名或ip
      地址,port是dsp的端口號。如下圖所示。連接池優(yōu)選地位于ssp (英文全稱為:SupplySide Platform)服務(wù)器上,用于統(tǒng)一管理與dsp通信的套接字。
      [0050]結(jié)合上述實(shí)施例以及變化例,本領(lǐng)域技術(shù)人員理解,在一個(gè)變化例中,可以使用數(shù)組來存放套接字。在這樣的變化例`中,需要一個(gè)額外的結(jié)構(gòu)體來輔助,比如這樣的一個(gè)結(jié)構(gòu)體:
      [0051]
      typdef struct {
      int begin; //fist保存了數(shù)組第一個(gè)元素的索引。
      int end; //last保存了數(shù)組最后一個(gè)元素的索引的下一
      個(gè)位置。
      int max_size;//max_size成員保存了數(shù)組的總大小
      long* ele; //保存了數(shù)組的首地址
      \.j,
      [0052]如圖7所示,其示出了根據(jù)本發(fā)明的第一實(shí)施例的,套接字鏈表被處理過程的示意圖。具體地,首先初始化數(shù)組。相當(dāng)于實(shí)現(xiàn)的數(shù)組隊(duì)列。當(dāng)end(尾指針)移動(dòng)到下表7后再插入套接字的話此時(shí)end要移動(dòng)到下標(biāo)O的地方,而去用套接字后begin (首指針)也是依次后移,若begin和end相等的話認(rèn)為無可用套接字。
      [0053]具體地,參考上述圖1至圖7所示實(shí)施例,本領(lǐng)域技術(shù)人員理解,特定鏈表之間不是以指針相連,而是放入一個(gè)map容器中,就好比一個(gè)多層的飯盒,每層放著不同種類的菜而每層的外面寫著菜的名字。菜的名字可以看作關(guān)鍵字,而菜看作特定的鏈表,現(xiàn)在想吃土豆絲,就取出寫著土豆絲的那層飯盒。若用數(shù)組實(shí)現(xiàn),以下標(biāo)作為關(guān)鍵字,內(nèi)容是鏈表即可。但是以下標(biāo)作為關(guān)鍵詞存放鏈表不容易識別。
      [0054]以上對本發(fā)明的具體實(shí)施例進(jìn)行了描述。需要理解的是,本發(fā)明并不局限于上述特定實(shí)施方式,本領(lǐng)域技術(shù)人員可以在權(quán)利要求的范圍內(nèi)做出各種變形或修改,這并不影響本發(fā)明的實(shí)質(zhì)內(nèi)容。
      【權(quán)利要求】
      1.一種套接字連接池控制方法,用于對套接字進(jìn)行管理,其包括如下步驟: a.接收獲取連接池內(nèi)套接字的請求信息; b.判斷所述連接池內(nèi)是否存在空閑的套接字; c.若存在空閑的套接字,則將所述套接字分配給上述請求信息對應(yīng)的請求。
      2.根據(jù)權(quán)利要求1所述的控制方法,其特征在于,還包括步驟: d.若不存在空閑的套接字,則進(jìn)一步判斷所述連接池內(nèi)的套接字?jǐn)?shù)量是否超過第二閾值; e.若所述連接池內(nèi)的套接字?jǐn)?shù)量小于所述第二閾值,則創(chuàng)建一個(gè)套接字,并將所述被創(chuàng)建的套接字分配給上述請求信息對應(yīng)的請求。
      3.根據(jù)權(quán)利要求1或2所述的控制方法,其特征在于,還包括如下步驟: f.獲取釋放套接字的控制信息; g.判斷與所述套接字具有相同關(guān)鍵字的套接字的數(shù)量是否大于第一閾值,若所述套接字的數(shù)量小于所述第一閾值,則創(chuàng)建和第一閾值相等的套接字。 h.分配的套接字處理完成后放回連接池。
      4.根據(jù)權(quán)利要求3所述的控制方法,其特征在于,在所述步驟h之前還包括如下步驟:` 1.若所述套接字的數(shù)量不大于所述第二閾值,則將處理完成的套接字放回連接池。 j.若所述套接字的數(shù)量大于所述第二閾值,則將多余套接字直接關(guān)閉。
      5.根據(jù)權(quán)利要求1至4中任一項(xiàng)所述的控制方法,其特征在于,在所述步驟a之前還包括如下步驟: 1.判斷所述連接池內(nèi)是否存在套接字; ?.若所述連接池內(nèi)不存在套接字,則重復(fù)創(chuàng)建套接字直至所述連 接池內(nèi)的套接字?jǐn)?shù)量等于所述第一閾值。
      6.根據(jù)權(quán)利要求1至5中任一項(xiàng)所述的控制方法,其特征在于,所述創(chuàng)建套接字的步驟包括如下步驟: 1.分配一個(gè)或多個(gè)套接字; I1.篩選可用的套接字,并判斷所述可用套接字加入所述連接池內(nèi)后所述連接池內(nèi)的套接字?jǐn)?shù)量是否超過所述第一閾值; II1.若所述連接池內(nèi)的套接字?jǐn)?shù)量不超過所述第一閾值,則創(chuàng)建到與第一閾值相等的套接字,并將所述第一閾值的套接字放入所述連接池內(nèi)。
      7.根據(jù)權(quán)利要求6所述的控制方法,其特征在于,所述篩選可用套接字的步驟包括如下步驟: -判斷所述套接字是否連接成功; -若所述套接字連接成功,則將所述套接字作為可以加入所述連接池的套接字。
      8.根據(jù)權(quán)利要求6或7所述的控制方法,其特征在于,所述將所述可用套接字放入所述連接池內(nèi)的步驟包括如下步驟: -將所述套接字加入一特定鏈表。
      9.根據(jù)權(quán)利要求3至8中任一項(xiàng)所述的控制方法,其特征在于,在所述步驟g之前還包括如下步驟: k.將與所述套接字匹配的特定鏈表鎖定。
      10.根據(jù)權(quán)利要求8或9所述的控制方法,其特征在于,所述將所述套接字加入一特定鏈表的步驟還包括如下步驟: -判斷所述特定鏈表是否存在; -若所述特定鏈表存在,則直接將所述套接字加入所述特定鏈表; -若所述特定鏈表不存在,則新建所述特定鏈表,并將所述套接字加入所述特定鏈表。
      11.根據(jù)權(quán)利要求8至10中任一項(xiàng)所述的控制方法,其特征在于,所述特定鏈表對應(yīng)于一個(gè)關(guān)鍵字。
      12.根據(jù)權(quán)利要求11所述的控制方法,其特征在于,所述關(guān)鍵字由Ip+port組成。
      13.根據(jù)權(quán)利要求10至12中任一項(xiàng)所述的控制方法,其特征在于,所述新建所述特定鏈表的步驟包括如下步驟: -對所述特定鏈表進(jìn)行封裝,以使得所述特定鏈表構(gòu)成所述連接池。
      14.根據(jù)權(quán)利要求13所述的控制方法,其特征在于,所述對所述特定鏈表進(jìn)行封裝的步驟包括如下步驟: -將所有特定鏈表均以指針相連接。
      15.根據(jù)權(quán)利要求1至14中任一項(xiàng)所述的控制方法,其特征在于,在所述步驟c之后還包括如下步驟: 1.保持所述連接池內(nèi)所有 套接字處于長連接狀態(tài)。
      16.根據(jù)權(quán)利要求15所述的控制方法,其特征在于,所述步驟i包括如下步驟: -采用select對所有客戶端的套接字進(jìn)行監(jiān)聽,判斷所述客戶端的套接字是否連接正常; -采用epoll模型對所有服務(wù)器端的套接字進(jìn)行監(jiān)聽,判斷所述服務(wù)器端的套接字是否連接正常;以及 -當(dāng)服務(wù)器端和客戶端監(jiān)聽的套接字均為正常連接狀態(tài)則待取用,否則關(guān)閉套接字。
      17.根據(jù)權(quán)利要求1至16中任一項(xiàng)所述的控制方法,其特征在于,所述步驟c中將所述套接字分配給上述請求信息對應(yīng)請求的步驟包括如下步驟: -根據(jù)所述請求信息確定本次請求對應(yīng)的關(guān)鍵字; -在所述連接池內(nèi)查找與所述關(guān)鍵字對應(yīng)的特定鏈表; -將所述對應(yīng)的特定鏈表鎖定; -判斷所述特定鏈表內(nèi)是否存在可用的套接字;以及 -若所述特定鏈表內(nèi)存在可用套接字,則根據(jù)所述請求信息分配對應(yīng)的套接字給所述請求信息對應(yīng)的請求。
      18.根據(jù)權(quán)利要求17所述的控制方法,其特征在于,還包括如下步驟: -若所述特定鏈表內(nèi)不存在可用套接字,則創(chuàng)建一個(gè)與所述關(guān)鍵字對應(yīng)的套接字,并將所述套接字分配給所述請求信息對應(yīng)的請求。
      19.根據(jù)權(quán)利要求17或18所述的控制方法,其特征在于,將所述可用套接字分配給所述請求對應(yīng)的請求的步驟之前還包括如下步驟: -將所述被鎖定的特定鏈表解鎖。 -鏈表解鎖后判定套接字是否可用,可用則將該套接字分配給請求信息,不可用則繼續(xù)上述步驟獲取套接字。
      20.根據(jù)權(quán)利要求1至19中任一項(xiàng)所述的控制方法,其特征在于,在所述步驟g還包括如下步驟: -判斷現(xiàn)有連接池內(nèi)套接字的數(shù)量是否大于第一閾值,若大于第一閾值,且不超過第二閾值,則存于連接池內(nèi)。 -若所述套接字的數(shù)量小于所述第一閾值,則創(chuàng)建和第一閾值相等的套接字,并且存放于容器中。
      21.根據(jù)權(quán)利要求4至20中任一項(xiàng)所述的控制方法,其特征在于,所述將處理完成的套接字放回連接池的步驟包括如下步驟: -獲取所述套接字對應(yīng)的關(guān)鍵字; -判斷所述連接池內(nèi)是否存在匹配的關(guān)鍵字; -若存在所述匹配關(guān)鍵字則將所述套接字插入到所述連接池內(nèi)匹配的關(guān)鍵字所對應(yīng)的鏈表中。
      22.根據(jù)權(quán)利要求21所述的控制方法,其特征在于,在將所述套接字插入到所述連接池內(nèi)匹配的關(guān)鍵字所對應(yīng)的鏈表中的步驟之前還包括如下步驟: -對所述關(guān)鍵字對應(yīng)的鏈表進(jìn)行鎖操作。
      23.根據(jù)權(quán)利要求21或22所述的控制方法,其特征在于,還包括如下步驟: -若不存在所述匹配關(guān)鍵字則將所述套.接字刪除。
      【文檔編號】H04L29/08GK103441999SQ201310370129
      【公開日】2013年12月11日 申請日期:2013年8月21日 優(yōu)先權(quán)日:2013年8月21日
      【發(fā)明者】程君 申請人:好耶網(wǎng)絡(luò)科技(上海)有限公司
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
      1