一種網絡事件處理方法及裝置制造方法
【專利摘要】本發明提供了一種網絡事件處理方法及裝置,當受到協議棧的調用時,判斷監聽套接字是否為請求鏈接的狀態,給請求鏈接的狀態的監聽套接字分配預設的調度配額,在一個監聽套接字預設的調度配額內,每接收到一個客戶端的數據傳輸請求時,創建與所述客戶端通信的連接套接字;創建與客戶端通過所述連接套接字通信的連接對象,將所述客戶端發送的數據通過所述連接套接字傳遞到所述連接對象,所述連接對象對所述數據進行處理后,將得到的處理結果數據通過所述的連接套接字返回到所述客戶端,在同一個裝置上實現網絡事件的觸發與處理,并且觸發過程結束時激活處理過程為一個連續的過程,加快網絡事件的處理速度,提高多核處理服務器的事件處理速度。
【專利說明】一種網絡事件處理方法及裝置
【技術領域】
[0001]本發明涉及通信【技術領域】,特別是涉及一種網絡事件處理方法及裝置。
【背景技術】
[0002]隨著互聯網信息傳輸技術的發展,越來越多的服務器采用多核處理器來解決網絡事件高并發的問題。服務器對網絡事件的處理,目前常用的方法為用戶態輪詢處理方式,采用操作系統內核的事件處理層實現同步非阻塞輸入/輸出(non-blocking I/O)以及多路復用(multiplexing)。
[0003]用戶輪詢方式處理網絡事件主要分為兩個步驟:事件觸發步驟:服務器中的網卡接收到客戶端發送的網絡服務請求數據,網卡將網絡服務請求數據通過與其連接的一個處理器發送到網絡協議棧的數據緩存區域進行緩存,網絡協議棧調用事件處理層標記所述數據緩存區域為存儲數據的狀態;事件處理步驟:用戶層通過一個處理器向網絡協議棧的緩存區域主動輪詢,當輪詢到緩存區域為存儲數據的狀態時,用戶層讀取數據緩存區域的數據。
[0004]以讀取數據為例,數據從客戶端發送到服務器的網卡,網卡將接收到的數據通過一個處理器發送到網絡協議棧的數據緩存區域進行緩存,網絡協議棧調用事件處理層標記所述數據緩存區域為存儲數據的狀態;用戶層通過一個處理器向網絡協議棧的緩存區域主動輪詢,當輪詢到緩存區域為存儲數據的狀態時,用戶層讀取數據緩存區域的數據。若用戶層輪詢的結果是數據緩存區域沒有數據進行緩存,則繼續輪詢。
[0005]本領域技術人員采用上述方法處理網絡事件時,發現有如下缺點:
[0006]上述處理網絡事件的過程中,事件的觸發和事件的處理是兩個分離的過程,網卡將數據通過一個處理器將數據發送到緩存區域存儲;用戶層通過一個處理器輪詢緩存區域的存儲狀態,事件的觸發和事件的處理可能出于不同的處理器隊列,導致事件的觸發和事件的處理之間產生一定的時間間隔,導致事件處理進行延遲,降低多核處理服務器的事件處理速度。
【發明內容】
[0007]有鑒于此,本發明提供了一種網絡事件處理方法及裝置,當接收到客戶端數據傳輸請求時,創建與客戶端通信的連接套接字,創建與客戶端通過所述連接套接字通信的連接對象,將客戶端發送的數據通過所述連接套接字傳遞到與所述連接對象進行處理,事件的觸發與處理過程在同一個裝置上處理,且觸發過程結束時激活處理過程,加快了網絡事件處理速度。
[0008]一種網絡事件處理方法,所述方法包括:
[0009]當受到協議棧的調用時,判斷監聽套接字是否為請求鏈接的狀態,所述監聽套接字用于監聽與其關聯的端口所接收的至少一個客戶端的鏈接請求;
[0010]給請求鏈接的狀態的監聽套接字分配預設的調度配額,所述預設的調度配額為對其所屬的監聽套接字所監聽的至少一個客戶端的數據處理請求的操作時間;
[0011]在一個監聽套接字預設的調度配額內,每接收到一個客戶端的數據處理請求時,創建與所述客戶端通信的連接套接字;
[0012]創建與客戶端通過所述連接套接字通信的連接對象;
[0013]將所述客戶端發送的數據通過所述連接套接字傳遞到所述連接對象,以便所述連接對象對所述數據進行處理后,將得到的處理結果數據通過所述的連接套接字返回到所述客戶端。
[0014]可選的,所述方法還包括:
[0015]在一個監聽套接字預設的調度配額內,當創建連接套接字失敗時,丟棄所述監聽
套接字。
[0016]可選的,所述方法還包括:
[0017]當超出一個監聽套接字預設的調度配額時,若仍能成功創建連接套接字,則重新為所述監聽套接字分配調度配額。
[0018]可選的,所述將所述客戶端發送的數據通過所述連接套接字傳遞到所述連接對象包括:
[0019]識別所述連接套接字對應的連接對象;
[0020]調用所述連接套接字的回調函數;
[0021]利用所述回調函數將所述客戶端發送的數據通過所述連接套接字傳遞到所述連接對象。
[0022]可選的,所述方法還包括:
[0023]當所述數據處理完畢或數據處理異常時,刪除所述連接套接字。
[0024]可選的,所述刪除所述連接套接字包括:
[0025]給所述連接套接字設置刪除預設時間;
[0026]當到達刪除預設時間時,刪除所述連接套接字。
[0027]一種網絡事件處理裝置,所述裝置包括:
[0028]判斷單元,用于當受到協議棧的調用時,判斷監聽套接字是否為請求鏈接的狀態,所述監聽套接字用于監聽與其關聯的端口所接收的至少一個客戶端的鏈接請求;
[0029]分配單元,用于給請求鏈接的狀態的監聽套接字分配預設的調度配額,所述預設的調度配額為對其所屬的監聽套接字所監聽的至少一個客戶端的數據處理請求的操作時間;
[0030]第一創建單元,用于在一個監聽套接字預設的調度配額內,每接收到一個客戶端的數據處理請求時,創建與所述客戶端通信的連接套接字;
[0031]第二創建單元,用于創建與客戶端通過所述連接套接字通信的連接對象;
[0032]處理單元,用于將所述客戶端發送的數據通過所述連接套接字傳遞到所述連接對象,以便所述連接對象對所述數據進行處理后,將得到的處理結果數據通過所述連接套接字返回到所述客戶端。
[0033]可選的,所述裝置還包括:
[0034]丟棄單元,用于在一個監聽套接字預設的調度配額內,當創建連接套接字失敗時,丟棄所述監聽套接字。[0035]可選的,所述裝置還包括:
[0036]重新分配單元,用于當超出一個監聽套接字預設的調度配額時,若仍能成功創建連接套接字,則重新為所述監聽套接字分配調度配額。
[0037]可選的,所述處理單元包括:
[0038]識別子單元,用于識別所述連接套接字對應的連接對象;
[0039]調用子單元,用于調用所述連接套接字的回調函數;
[0040]發送子單元,用于利用所述回調函數將所述客戶端發送的數據通過所述連接套接字傳遞到與所述連接對象,以便所述連接對象對所述數據進行處理后,將得到的處理結果數據通過所述的連接套接字返回到所述客戶端。
[0041]可選的,所述裝置還包括:
[0042]刪除單元,用于當所述數據處理完畢或數據處理異常時,刪除所述連接套接字。
[0043]可選的,所述刪除單元包括:
[0044]設置子單元,用于給所述連接套接字設置刪除預設時間;
[0045]刪除子單元,用于當到達刪除預設時間時,刪除所述連接套接字。
[0046]有上述內容可知,本發明有如下有益效果:
[0047]本發明提供了一種網絡事件處理方法及裝置,當受到協議棧的調用時,判斷監聽套接字是否為請求鏈接的狀態,給請求鏈接的狀態的監聽套接字分配預設的調度配額,在一個監聽套接字預設的調度配額內,每接收到一個客戶端的數據傳輸請求時,創建與所述客戶端通信的連接套接字;創建與所述客戶端通過所述連接套接字通信的連接對象,將所述客戶端發送的數據通過所述連接套接字傳遞到與所述連接對象,以便所述連接對象對所述數據進行處理后,將得到的處理結果數據通過所述的連接套接字返回到所述客戶端。網絡事件的觸發過程為接收到客戶端的數據傳輸請求,事件的處理過程為創建與客戶端通信的連接套接字,創建與客戶端通過所述連接套接字通信的連接對象,將客戶端的數據通過所述連接套接字傳遞到所述連接對象進行處理,將處理結果數據通過所述的連接套接字返回到所述客戶端,事件的觸發過程與處理過程為一個連續的過程,并在同一個裝置上處理,提高了裝置的緩存命中率,加快網絡事件的處理速度,提高了多核處理服務器的事件處理速度。
【專利附圖】
【附圖說明】
[0048]為了更清楚地說明本發明實施例或現有技術中的技術方案,下面將對實施例或現有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發明的一些實施例,對于本領域普通技術人員來講,在不付出創造性勞動的前提下,還可以根據這些附圖獲得其他的附圖。
[0049]圖1為本發明一種網絡事件處理方法實施例一流程圖;
[0050]圖2為本發明一種網絡事件處理方法實施例二流程圖;
[0051]圖3為本發明一種網絡事件處理裝置實施例三結構示意圖;
[0052]圖4為本發明一種網絡事件處理裝置實施例四結構示意圖。
【具體實施方式】[0053]本發明提供了一種網絡事件處理方法及裝置,本發明提供了 一種網絡事件處理方法及裝置,當接收到客戶端數據傳輸請求時,創建與客戶端通信的連接套接字,創建與客戶端通過所述連接套接字通信的連接對象,將客戶端發送的數據通過所述連接套接字傳遞到與所述連接對象進行處,事件的觸發處理過程為一個連續的過程,提高了多核處理服務器的事件處理速度。
[0054]下面結合附圖對本發明具體實施例進行詳細說明。
[0055]實施例一
[0056]圖1為本發明一種網絡事件處理方法實施例一流程圖,所述方法包括:
[0057]步驟101:當受到協議棧的調用時,判斷監聽套接字是否為請求鏈接的狀態,如果是,執行步驟102,如果否,執行步驟106。
[0058]服務器的每個端口對應一個監聽套接字,所述監聽套接字用于監聽與其關聯的端口所接收的至少一個客戶端的鏈接請求。服務器監聽套接字初始化時,設置服務器內核系統監聽套接字的sk_data_ready回調函數。
[0059]至少一個客戶端通過一個端口將鏈接請求數據發送到服務器的網卡,網卡將鏈接請求數據發送到內核系統的協議棧,協議棧將鏈接請求數據進行緩存,獲取與所述端口關聯的監聽套接字,并調用內核系統監聽套接字的sk_data_ready回調函數。
[0060]回調函數判斷接監聽套接字的狀態,當監聽套接字的狀態為請求鏈接的狀態,則將所述監聽套接字放入一個監聽隊列。監聽隊列是一個放置符合請求鏈接狀態的監聽套接字的隊列,采用先進先出的原則,先進入監聽隊列的監聽套接字先彈出;后進入監聽隊列的監聽套接字后彈出,也就是說,先處理先進入的監聽套接字,再處理后進入的監聽套接字。監聽隊列理論上可以排列的監聽套接字的個數不限制,在服務器的存儲范圍內即可。
[0061]步驟102:給請求鏈接的狀態的監聽套接字分配預設的調度配額。
[0062]回調函數激活監聽隊列的監聽處理線程,排列在監聽隊列中的監聽套接字按照順序逐一彈出,監聽處理線程給彈出的監聽套接字設置預設的調度配額。所述預設的調度配額為對其所屬的監聽套接字所監聽的至少一個客戶端的數據處理請求的操作時間,也就是說,預設的調度配額為所述監聽套接字的操作時間。舉例說明,若預設的調度配額為10s,處理在IOs內監聽套接字所監聽到的所有客戶端的數據處理請求。
[0063]在預設的調度配額內,盡可能的處理所有當前處理的監聽套接字所監聽到的至少一個客戶端的數據處理請求。超出預設的調度配額或處理完當前處理的監聽套接字所監聽到的所有客戶端的數據處理請求后,彈出下一個監聽套接字,為下一個監聽套接字分配預設的調度配額。
[0064]步驟103:在一個監聽套接字預設的調度配額內,每接收到一個客戶端的數據處理請求時,創建與所述客戶端通信的連接套接字。
[0065]監聽處理線程給一個監聽套接字分配預設的調度配額后,監聽套接字每監聽到一個客戶端的數據處理請求時,創建一個與所述客戶端通信的連接套接字。監聽套接字監聽與其關聯的端口所接收的至少一個客戶端發送的數據處理求。監聽套接字可以接收不同的客戶端發送的數據處理請求,監聽處理線程為每一個客戶端單獨創建一個與客戶端通信的連接套接字,一個連接套接字與一個客戶端進行通信。
[0066]將生成的連接套接字發送到工廠隊列,工廠隊列是放置與客戶端通信的連接套接字的隊列。
[0067]監聽處理線程主要給請求鏈接狀態的監聽套接字分配預設的調度配額,給當前處理的監聽套接字所監聽到的客戶端創建一個連接套接字,將連接套接字發送到工廠隊列進行后續處理,這樣可以保證監聽處理線程不被阻塞,有效的提高了并發連接請求的處理能力。
[0068]步驟104:創建與客戶端通過所述連接套接字通信的連接對象。
[0069]工廠處理線程根據工廠隊列中彈出的連接套接字在內核系統中創建一個連接對象,所述連接對象通過所述連接套接字與客戶端進行通信。連接套接字與連接對象一一對應,建立了客戶端和與連接對象之間數據傳輸通道。
[0070]步驟105:將所述客戶端發送的數據通過所述連接套接字傳遞到所述連接對象,以便所述連接對象對所述數據進行處理后,將得到的處理結果數據通過所述的連接套接字返回到所述客戶端。
[0071]事件處理線程識別工廠隊列彈出的連接套接字接收的客戶端數據的類型,根據所述數據的類型調用與所述數據類型相匹配的回調函數。
[0072]當接收到來自客戶端的數據時,調用sk_data_ready回調函數;
[0073]當網絡協議棧的緩沖區可寫時,調用sk_write_space回調函數;
[0074]當連接套接字的狀態改變時,調用sk_state_chuange回調函數。
[0075]調用了回調函數的連接套接字作為一個數據處理事件發送到事務隊列,事務隊列中放置的是待處理的具體數據處理事件,采用先進先出的原則,依次對客戶端發送的數據進行處理。
[0076]事件處理線程對事務隊列彈出的處理事件進行處理,即利用所述回調函數將所述客戶端發送的數據通過所述連接套接字與傳遞到所述連接對象。由于所述連接對象與客戶端通信,連接對象將對所述數據進行處理后,將得到的處理結果數據通過所述的連接套接字返回到所述客戶端。
[0077]步驟106:丟棄所述監聽套接字。
[0078]當監聽套接字不是請求鏈接的狀態時,丟棄所述監聽套接字。
[0079]由上述內容可知,本發明有如下有益效果:
[0080]當受到協議棧的調用時,判斷監聽套接字是否為請求鏈接的狀態,給請求鏈接的狀態的監聽套接字分配預設的調度配額,在一個監聽套接字預設的調度配額內,每接收到一個客戶端的數據傳輸請求時,創建與所述客戶端通信的連接套接字;創建與所述客戶端通過所述連接套接字通信的連接對象,將所述客戶端發送的數據通過所述連接套接字傳遞到與所述連接對象,以便所述連接對象對所述數據進行處理后,將得到的處理結果數據通過所述的連接套接字返回到所述客戶端。網絡事件的觸發過程為接收到客戶端的數據傳輸請求,事件的處理過程為創建與客戶端通信的連接套接字,創建與客戶端通過所述連接套接字通信的連接對象,將客戶端的數據通過所述連接套接字傳遞到所述連接對象進行處理,將處理結果數據通過所述的連接套接字返回到所述客戶端,事件的觸發過程與處理過程為一個連續的過程,并在同一個裝置上處理,提高了裝置的緩存命中率,加快網絡事件的處理速度,提高了多核處理服務器的事件處理速度。
[0081]實施例二[0082]圖2為本發明一種網絡事件處理方法實施例二流程圖,與實施例一相比,實施例二中還包括對連接套接字的刪除處理,所述方法包括:
[0083]步驟201:當受到協議棧的調用時,判斷監聽套接字是否為請求鏈接的狀態,如果是,執行步驟202 ;如果否,執行步驟210。
[0084]步驟202:給請求鏈接的狀態的監聽套接字分配預設的調度配額。
[0085]所述預設的調度配額為對所屬的監聽套接字所監聽的至少一個客戶端的數據處理請求的操作時間。
[0086]步驟201與步驟202與實施例一類似,參考實施例一的描述,這里不再贅述。
[0087]步驟203:判斷是否在一個監聽套接字預設的調度配額內,如果是,執行步驟204,如果否,執行步驟208。
[0088]在監聽套接字預設的調度配額內時,盡可能的處理監聽套接字所監聽到的所有客戶端發送的數據處理請求。
[0089]步驟204:每接收到一個客戶端的數據處理請求時,創建與所述客戶端通信的連接套接字,連接套接字是否創建成功,如果是,執行步驟205;如果否,執行步驟210。
[0090]在監聽套接字的預設的調度配額內,每接收到一個客戶端的數據處理請求,即創建一個與所述客戶端通信的連接套接字。此處與實施例一類似,參考實施例一的描述,這里不再贅述。
[0091]連接套接字創建成功,則創建與客戶端通過所述連接套接字通信的連接對象;連接套接字創建不成功,表示監聽套接字所監聽到的所有客戶端的數據處理請求處理完畢,丟棄所述連接套接字。
[0092]步驟205:若連接套接字創建成功,創建與客戶端通過所述連接套接字通信的連接對象。
[0093]步驟206:將所述客戶端發送的數據通過所述連接套接字傳遞到所述連接對象,以便所述連接對象對所述數據進行處理后,將得到的處理結果數據通過所述的連接套接字返回到所述客戶端。
[0094]步驟205和步驟206與實施例一類似,參考實施例一的描述,這里不再贅述。
[0095]步驟207:當所述數據處理完畢或數據處理異常時,刪除所述連接套接字。
[0096]當數據傳輸完畢或者傳輸異常時,事件處理線程給所述連接套接字添加刪除標識,并將添加了刪除標識的連接套接字發送到工廠隊列,工廠隊列刪除添加了刪除標識的連接套接字。
[0097]可選的,事件處理線程給添加了刪除標識的連接套接字設置刪除預設時間,當到達刪除預設時間時,刪除所述連接套接字。
[0098]工廠處理線程執行創建與客戶端通過所述連接套接字通信的連接對象以及刪除添加了刪除標識的連接套接字兩個處理任務,其中,創建連接對象采用盡可能的調度策略,只要工廠隊列中還有連接套接字,就與客戶端通過所述連接套接字通信的連接對象;刪除添加了刪除標識的連接套接字采用延遲處理策略,給每個添加了刪除標識的連接套接字設置一個刪除預設時間,當到達刪除預設時間時,再對添加了刪除標識的連接套接字進行刪除。這樣,工廠處理線程可以先盡快的處理待處理的連接套接字,再延遲處理刪除空閑的連接套接字,釋放事件處理空間,最大限度了提高了并發事件的處理能力。[0099]步驟208:連接套接字是否創建成功,如果是,執行步驟209 ;如果否,執行步驟210。
[0100]步驟209:若連接套接字創建成功,重新為所述監聽套接字分配調度配額。
[0101]當超過預設的調度配額時,監聽套接字所監聽的所有客戶端的數據處理請求還沒有操作完畢,也就是說,當超過預設的調度配額時,此監聽套接字還監聽到客戶端的數據處理請求,則將此監聽套接字重新放入監聽隊列,重新為此監聽套接字分配預設的調度配額。
[0102]舉例說明:若監聽隊列中依次有tcp監聽套接字、unix監聽套接字以及Iinux監聽套接字,處理tcp監聽套接字監聽到的客戶端的數據處理請求,當超過tcp監聽套接字的預設的調度配額時,tcp監聽套接字還監聽到客戶端的數據處理請求,則將tcp監聽套接字重新放入監聽隊列,排列在Iinux監聽套接字之后,當處理完unix監聽套接字和Iinux監聽套接字后,再給tcp監聽套接字分配預設的調度配額,繼續處理tcp監聽套接字監聽到的客戶端的數據處理請求。
[0103]步驟210:若連接套接字創建失敗,丟棄所述連接套接字。
[0104]由上述內容可知,本發明還有如下有益效果:
[0105]監聽處理線程將連接套接字發送到工廠隊列,工廠處理線程創建與客戶端通過所彈出的連接套接字通信的連接對象,監聽處理線程只負責處理監聽客戶端的數據處理請求事件;事件處理線程調用回調函數將客戶端發送的數據通過所述連接套接字傳遞到所述連接對象,給數據處理完畢或數據處理異常的連接套接字添加刪除標識發送到工廠隊列,事件處理線程只負責客戶端的數據的處理;工廠隊列負責生成連接對象,并刪除添加了刪除標識的連接套接字,釋放事件處理空間,輔助監聽處理線程和事件處理線程,保證監聽處理線程不阻塞,最大限度提高了并發鏈接請求的處理能力;刪除空閑的連接套接字,釋放數據處理空間,最大限度提高了并發事務的處理能力。
[0106]實施例三
[0107]圖3為本發明一種網絡事件處理裝置實施例三結構示意圖,實施例三是與實施例一所述的方法所對應的裝置,所述裝置包括:
[0108]判斷單元301,用于當受到協議棧的調用時,判斷監聽套接字是否為請求鏈接的狀態。
[0109]所述監聽套接字用于監聽與其關聯的端口所接收的至少一個客戶端的請求。
[0110]分配單元302,用于給請求鏈接的狀態的監聽套接字分配預設的調度配額。
[0111]所述預設的調度配額為對所屬的監聽套接字所監聽的至少一個客戶端的數據處理請求的操作時間。
[0112]第一創建單元303,用于在一個監聽套接字預設的調度配額內,每接收到一個客戶端的數據處理請求時,創建與所述客戶端通信的連接套接字。
[0113]第二創建單元304,用于創建與客戶端通過所述連接套接字通信的連接對象。
[0114]處理單元305,用于將所述客戶端發送的數據通過所述連接套接字傳遞到所述連接對象,以便所述連接對象對所述數據進行處理后,將得到的處理結果數據通過所述連接套接字返回到所述客戶端。
[0115]可選的,所述處理單元305包括:
[0116]識別子單元306,用于識別所述連接套接字對應的連接對象;[0117]調用子單元307,用于調用所述連接套接字的回調函數;
[0118]發送子單元308,用于利用所述回調函數將所述客戶端發送的數據通過所述連接套接字傳遞到與所述連接對象,以便所述連接對象對所述數據進行處理后,將得到的處理結果數據通過所述的連接套接字返回到所述客戶端。
[0119]實施例四
[0120]圖4為本發明一種網絡事件處理裝置實施例四結構示意圖,實施例四是與實施例二所述的方法所對應的裝置,所述裝置包括:
[0121]判斷單元301,用于當受到協議棧的調用時,判斷監聽套接字是否為請求鏈接的狀態。
[0122]所述監聽套接字用于監聽與其關聯的端口所接收的至少一個客戶端的鏈接請求。
[0123]分配單元302,用于給請求鏈接的狀態的監聽套接字分配預設的調度配額。
[0124]所述預設的調度配額為對所屬的監聽套接字所監聽的至少一個客戶端的數據處理請求的操作時間。
[0125]第一創建單元303,用于在一個監聽套接字預設的調度配額內,每接收到一個客戶端的數據傳輸請求時,創建與所述客戶端通信的連接套接字。
[0126]第二創建單元304,用于創建與客戶端通過所述連接套接字通信的連接對象。
[0127]處理單元305,用于將所述客戶端發送的數據通過所述連接套接字傳遞到所述連接對象,以便所述連接對象對所述數據進行處理后,將得到的處理結果數據通過所述連接套接字返回到所述客戶端。
[0128]可選的,所述處理單元305包括:
[0129]識別子單元306,用于識別所述連接套接字對應的連接對象;
[0130]調用子單元307,用于調用所述連接套接字的回調函數;
[0131]發送子單元308,用于利用所述回調函數將所述客戶端發送的數據通過所述連接套接字傳遞到與所述連接對象,以便所述連接對象對所述數據進行處理后,將得到的處理結果數據通過所述的連接套接字返回到所述客戶端。
[0132]丟棄單元401,用于在一個監聽套接字預設的調度配額內,當創建連接套接字失敗時,丟棄所述監聽套接字。
[0133]重新分配單元402,用于當超出一個監聽套接字預設的調度配額時,若仍能成功創建連接套接字,重新為所述監聽套接字分配調度配額。
[0134]刪除單元403,用于當所述數據處理完畢或數據處理異常時,刪除所述連接套接字。
[0135]可選的,所述刪除單元403包括:
[0136]設置子單元404,用于給所述連接套接字設置刪除預設時間;
[0137]刪除子單元405,用于當到達刪除預設時間時,刪除所述連接套接字。
[0138]以上所述僅為本發明的較佳實施例而已,并不用以限制本發明,凡在本發明的精神和原則之內,所作的任何修改、等同替換、改進等,均應包含在本發明的保護范圍之內。
【權利要求】
1.一種網絡事件處理方法,其特征在于,所述方法包括: 當受到協議棧的調用時,判斷監聽套接字是否為請求鏈接的狀態,所述監聽套接字用于監聽與其關聯的端口所接收的至少一個客戶端的鏈接請求; 給請求鏈接的狀態的監聽套接字分配預設的調度配額,所述預設的調度配額為對其所屬的監聽套接字所監聽的至少一個客戶端的數據處理請求的操作時間; 在一個監聽套接字預設的調度配額內,每接收到一個客戶端的數據處理請求時,創建與所述客戶端通信的連接套接字; 創建與客戶端通過所述連接套接字通信的連接對象; 將所述客戶端發送的數據通過所述連接套接字傳遞到所述連接對象,以便所述連接對象對所述數據進行處理后,將得到的處理結果數據通過所述的連接套接字返回到所述客戶端。
2.根據權利要求1所述的方法,其特征在于,所述方法還包括: 在一個監聽套接字預設的調度配額內,當創建連接套接字失敗時,丟棄所述監聽套接字。
3.根據權利要求1所述的方法,其特征在于,所述方法還包括: 當超出一個監聽套接字預設的調度配額時,若仍能成功創建連接套接字,則重新為所述監聽套接字分配調度配額。`
4.根據權利要求1所述的方法,其特征在于,所述將所述客戶端發送的數據通過所述連接套接字傳遞到所述連接對象包括: 識別所述連接套接字對應的連接對象; 調用所述連接套接字的回調函數; 利用所述回調函數將所述客戶端發送的數據通過所述連接套接字傳遞到所述連接對象。
5.根據權利要求1-4任意一項所述的方法,其特征在于,所述方法還包括: 當所述數據處理完畢或數據處理異常時,刪除所述連接套接字。
6.根據權利要求5所述的方法,其特征在于,所述刪除所述連接套接字包括: 給所述連接套接字設置刪除預設時間; 當到達刪除預設時間時,刪除所述連接套接字。
7.—種網絡事件處理裝置,其特征在于,所述裝置包括: 判斷單元,用于當受到協議棧的調用時,判斷監聽套接字是否為請求鏈接的狀態,所述監聽套接字用于監聽與其關聯的端口所接收的至少一個客戶端的鏈接請求; 分配單元,用于給請求鏈接的狀態的監聽套接字分配預設的調度配額,所述預設的調度配額為對其所屬的監聽套接字所監聽的至少一個客戶端的數據處理請求的操作時間;第一創建單元,用于在一個監聽套接字預設的調度配額內,每接收到一個客戶端的數據處理請求時,創建與所述客戶端通信的連接套接字; 第二創建單元,用于創建與客戶端通過所述連接套接字通信的連接對象; 處理單元,用于將所述客戶端發送的數據通過所述連接套接字傳遞到所述連接對象,以便所述連接對象對所述數據進行處理后,將得到的處理結果數據通過所述連接套接字返回到所述客戶端。
8.根據權利要求7所述的裝置,其特征在于,所述裝置還包括: 丟棄單元,用于在一個監聽套接字預設的調度配額內,當創建連接套接字失敗時,丟棄所述監聽套接字。
9.根據權利要求7所述的裝置,其特征在于,所述裝置還包括: 重新分配單元,用于當超出一個監聽套接字預設的調度配額時,若仍能成功創建連接套接字,則重新為所述監聽套接字分配調度配額。
10.根據權利要求7所述的裝置,其特征在于,所述處理單元包括: 識別子單元,用于識別所述連接套接字對應的連接對象; 調用子單元,用于調用所述連接套接字的回調函數; 發送子單元,用于利用所述回調函數將所述客戶端發送的數據通過所述連接套接字傳遞到與所述連接對象,以便所述連接對象對所述數據進行處理后,將得到的處理結果數據通過所述的連接套接字返回到所述客戶端。
11.根據權利要求7-10所述的裝置,其特征在于,所述裝置還包括: 刪除單元,用于當所述數據處理完畢或數據處理異常時,刪除所述連接套接字。
12.根據權利要求11所述的裝置,其特征在于,所述刪除單元包括: 設置子單元,用于給所述連接套接字設置刪除預設時間; 刪除子單元,用于當到達刪除預設時間時,刪除所述連接套接字。
【文檔編號】H04L12/24GK103501245SQ201310446725
【公開日】2014年1月8日 申請日期:2013年9月26日 優先權日:2013年9月26日
【發明者】李建國 申請人:北京搜狐互聯網信息服務有限公司