麻豆精品无码国产在线播放,国产亚洲精品成人AA片新蒲金,国模无码大尺度一区二区三区,神马免费午夜福利剧场

一種雙工通信的方法及通信服務器的制作方法

文檔序號:7886848閱讀:248來源:國知局
專利名稱:一種雙工通信的方法及通信服務器的制作方法
技術領域
本發明屬于通信領域,尤其涉及一種雙工通信的方法及通信服務器。
背景技術
隨著網絡化社會的不斷進步,越來越多的網絡通訊工具應用到工作和生活中,比如飛信、MSN和一些企業版應用軟件等。在目前的即時通信應用中,客戶端與通信服務器的之間建立的某一連接在同一時間點只能單獨發送或單獨接收數據,不能同時接收和發送數據,極大地降低了通信效率。另外,當有大量客戶端同時連接通信服務器時,通信服務器會產生大量連接,如果不對這些連接的數據緩沖區統一管理,將產生大量的內存碎片,降低了連接數據緩沖區的訪問速度,嚴重時甚至會導致通信服務器崩潰。

發明內容
本發明提供一種雙工通信的方法及通信服務器以解決上述問題。本發明提供一種雙工通信的方法,包括以下步驟。通信服務器根據設定的最大客戶端連接數分配緩沖內存大小。所述通信服務器創建雙工連接并為所述雙工連接分配數據緩沖區,其中,每個雙工連接包括一個數據接收連接以及一個數據發送連接。當所述通信服務器從客戶端接收消息時,所述通信服務器從與所述客戶端匹配的雙工連接的數據接收連接對應的數據緩沖區獲取接收的數據,當所述通信服務器發送消息給所述客戶端時,所述通信服務器將發送的數據寫入與所述客戶端匹配的雙工連接的數據發送連接對應的數據緩沖區,并將所述數據緩沖區的數據發送給所述客戶端。本發明提供一種雙工通信的通信服務器,包括分配模塊、創建模塊、收發模塊,其中所述分配模塊連接所述創建模塊,所述創建模塊連接所述收發模塊,所述收發模塊,包括接收裝置及發送裝置,所述接收裝置連接所述發送裝置。所述分配模塊,用于根據設定的最大客戶端連接數分配緩沖內存大小。所述創建模塊,用于創建雙工連接并為所述雙工連接分配數據緩沖區,其中,每個雙工連接包括一個數據接收連接以及一個數據發送連接。所述接收裝置,用于從客戶端接收消息時,從與所述客戶端匹配的雙工連接的數據接收連接對應的數據緩沖區獲取接收的數據。所述發送裝置,用于發送消息給所述客戶端時,將發送的數據寫入與所述客戶端匹配的雙工連接的數據發送連接對應的數據緩沖區,并將所述數據緩沖區的數據發送給所述客戶端。相較于先前技術,根據本發明提供的雙工通信的方法及通信服務器,創建同時用于接收和發送數據的雙工連接,并為每個雙工連接分配數據緩沖區,能夠同時進行收發數據,提高了通信效率。當通信服務器從客戶端接收消息時,通信服務器從與客戶端匹配的雙工連接的數據接收連接對應的數據緩沖區獲取接收的數據,當通信服務器發送消息給客戶端時,通信服務器將發送的數據寫入與客戶端匹配的雙工連接的數據發送連接對應的數據緩沖區,并將數據緩沖區的數據發送給客戶端。以上對數據緩沖區的統一管理,有效防止了內存碎片的產生,并且大大提高了服務器尋址速度。


此處所說明的附圖用來提供對本發明的進ー步理解,構成本申請的一部分,本發明的示意性實施例及其說明用于解釋本發明,并不構成對本發明的不當限定。在附圖中圖1所示為根據本發明的較佳實施例提供的雙エ通信的方法的流程圖;圖2所示為根據本發明的較佳實施例提供的雙エ通信的通信服務器的示意圖。
具體實施例方式下文中將參考附圖并結合實施例來詳細說明本發明。需要說明的是,在不沖突的情況下,本申請中的實施例及實施例中的特征可以相互組合。圖1所示為根據本發明的較佳實施例提供的雙エ通信的方法的流程圖。如圖1所示,本發明較佳實施例提供的雙エ通信的方法包括步驟101 103。步驟101 通信服務器根據設定的最大客戶端連接數分配緩沖內存大小。具體而言,每臺通信服務器具有最大客戶端連接數,根據所述最大客戶端連接數分配緩沖內存大小。步驟102 所述通信服務器創建雙エ連接并為所述雙エ連接分配數據緩沖區,其中,每個雙エ連接包括一個數據接收連接以及ー個數據發送連接。具體而言,通信服務器創建雙エ連接,每個雙エ連接包括一個數據接收連接以及一個數據發送連接,所述雙エ連接的個數與設定的最大客戶端連接數相等。同吋,所述通信服務器創建空閑池以及繁忙池,其中,所述空閑池用于存放當前沒有與客戶端匹配的雙 エ連接,所述繁忙池用于存放正在與客戶端匹配的雙エ連接。當所述通信服務器偵聽到所述客戶端的通信連接時,所述通信服務器從所述空閑池取出一個雙エ連接與所述客戶端匹配,并將所述雙エ連接放入所述繁忙池中。當所述客戶端斷開與所述通信服務器的通信后, 所述通信服務器清空與所述客戶端匹配的雙エ連接對應的數據緩沖區,并將所述雙エ連接從所述繁忙池移入所述空閑池中。所述通信服務器創建雙エ連接后,為所述雙エ連接分配數據緩沖區,所述雙エ連接的數據緩沖區,一半用于存放所述數據接收連接接收的數據,另一半用于存放數據發送連接發送的數據。所述雙エ連接的數據緩沖區大小乘以最大客戶端連接數,即為通信服務器分配的緩沖內存大小。舉例而言,設定通信服務器的最大客戶端連接數為1000,所述通信服務器為每個雙エ連接分配的數據緩沖區大小為2048byte,則通信服務器分配的緩沖內存大小為 1000*2048byte。若第一個雙エ連接的數據緩沖區為0 2048byte,則所述第一個雙エ連接的數據接收連接所對應的緩沖區為0 10MByte、數據發送連接所對應的緩沖區為IOM 2048Byte。若第二個雙エ連接的數據緩沖區為2048 4096Byte,則所述第二個雙エ連接的數據接收連接所對應的緩沖區為2048 3072Byte、數據發送連接所對應的緩沖區為 3072 4096Byte。依次類推,直到將所有雙エ連接的數據緩沖區分配完畢。步驟103 當所述通信服務器從客戶端接收消息吋,所述通信服務器從與所述客戶端匹配的雙ェ連接的數據接收連接對應的數據緩沖區獲取接收的數據,當所述通信服務器發送消息給所述客戶端時,所述通信服務器將發送的數據寫入與所述客戶端匹配的雙ェ連接的數據發送連接對應的數據緩沖區,并將所述數據緩沖區的數據發送給所述客戶端。具體而言,通信服務器從客戶端接收消息時,所述通信服務器從繁忙池中找到與所述客戶端匹配的雙工連接,并在緩沖內存中查找該雙工連接的數據接收連接的數據緩沖區,從所述數據接收連接的數據緩沖區中取出數據后,解析數據,并進行業務邏輯處理。若通信服務器發送消息給客戶端,所述通信服務器首先從繁忙池中找到與所述客戶端匹配的雙工連接,并在緩沖內存中查找該雙工連接的數據發送連接的數據緩沖區,將要發送的數據寫入所述數據發送連接的數據緩沖區,然后發送所述數據發送連接的數據緩沖區的數據給客戶端。舉例而言,若通信服務器接收到客戶端a發送的消息“〈root type ='login'from =’ a' />”,通信服務器根據客戶端與雙工連接的匹配關系從繁忙池中查找與客戶端a匹配的雙工連接,接下來在緩沖內存中查找所述雙工連接的數據接收連接的數據緩沖區,從所述數據接收連接的數據緩沖區取出數據后,解析數據,得到“〈root type =,login' from =,a' />”,再將所述消息拋入業務邏輯處理。另夕卜,若通信服務器向客戶端a發送消息“〈root type =’ text' say =’ hello' />”,通信服務器根據客戶端與雙工連接的匹配關系從繁忙池中找到客戶端匹配的雙工連接,接下來在緩沖內存中查找所述雙工連接的數據發送連接的數據緩沖區,將 “〈root type =’ text' say =’ hello’ />”寫入到所述數據發送連接的數據緩沖區后,發送所述數據發送連接的數據緩沖區的數據給客戶端a??蛻舳伺c雙工連接的數據緩沖區匹配關系如下表所示
客戶端名稱雙工連接名稱數據緩沖區(單位byte)a雙工連接1數據接收連接/0 1024數據發送連接/1024 2048b雙工連接2數據接收連接/2048 3072數據發送連接/3072 4096圖2所示為根據本發明的較佳實施例提供的雙工通信的通信服務器的示意圖。如圖2所示,本發明較佳實施例提供的雙工通信的通信服務器包括分配模塊1、創建模塊2、收發模塊3,其中所述分配模塊1連接所述創建模塊2,所述創建模塊2連接所述收發模塊3, 所述收發模塊3,包括接收裝置31及發送裝置32,所述接收裝置31連接所述發送裝置32。 所述分配模塊1,用于根據設定的最大客戶端連接數分配緩沖內存大小。所述創建模塊2, 用于創建雙工連接并為所述雙工連接分配數據緩沖區,其中,每個雙工連接包括一個數據接收連接以及一個數據發送連接。所述接收裝置31,用于從客戶端接收消息時,從與所述客戶端匹配的雙工連接的數據接收連接對應的數據緩沖區獲取接收的數據。所述發送裝置 32,用于發送消息給所述客戶端時,將發送的數據寫入與所述客戶端匹配的雙工連接的數據發送連接對應的數據緩沖區,并將所述數據緩沖區的數據發送給所述客戶端。綜上所述,根據本發明較佳實施例提供的雙工通信的方法及通信服務器,創建同時用于接收和發送數據的雙エ連接,并為每個雙エ連接分配數據緩沖區。當通信服務器從客戶端接收消息吋,通信服務器從與客戶端匹配的雙エ連接的數據接收連接對應的數據緩沖區獲取接收的數據,當通信服務器發送消息給客戶端吋,通信服務器將發送的數據寫入與客戶端匹配的雙エ連接的數據發送連接對應的數據緩沖區,并將數據緩沖區的數據發送給客戶端。在雙エ連接提高通信效率的同時,對數據緩沖做了統ー管理,防止了內存碎片的產生,提高了內存的訪問速度。 以上所述僅為本發明的優選實施例而已,并不用于限制本發明,對于本領域的技術人員來說,本發明可以有各種更改和變化。凡在本發明的精神和原則之內,所作的任何修改、等同替換、改進等,均應包含在本發明的保護范圍之內。
權利要求
1.一種雙エ通信的方法,其特征在干,包括以下步驟通信服務器根據設定的最大客戶端連接數分配緩沖內存大?。凰鐾ㄐ欧掌鲃摻pエ連接并為所述雙エ連接分配數據緩沖區,其中,每個雙エ連接包括一個數據接收連接以及ー個數據發送連接;當所述通信服務器從客戶端接收消息吋,所述通信服務器從與所述客戶端匹配的雙エ 連接的數據接收連接對應的數據緩沖區獲取接收的數據,當所述通信服務器發送消息給所述客戶端吋,所述通信服務器將發送的數據寫入與所述客戶端匹配的雙エ連接的數據發送連接對應的數據緩沖區,并將所述數據緩沖區的數據發送給所述客戶端。
2.根據權利要求1所述的方法,其特征在干,所述通信服務器創建空閑池以及繁忙池, 其中,所述空閑池用于存放當前沒有與客戶端匹配的雙エ連接,所述繁忙池用于存放正在與客戶端匹配的雙エ連接。
3.根據權利要求2所述的方法,其特征在干,當所述通信服務器偵聽到所述客戶端的通信連接時,所述通信服務器從所述空閑池取出一個雙エ連接與所述客戶端匹配,并將所述雙エ連接放入所述繁忙池中。
4.根據權利要求2所述的方法,其特征在干,當所述客戶端斷開與所述通信服務器的通信后,所述通信服務器清空與所述客戶端匹配的雙エ連接對應的數據緩沖區,并將所述雙エ連接從所述繁忙池移入所述空閑池中。
5.根據權利要求1所述的方法,其特征在干,所述緩沖內存大小為每個雙エ連接預設的數據緩沖區大小與設定的最大客戶端連接數的乘積。
6.根據權利要求1或5所述的方法,其特征在干,每個雙エ連接的數據緩沖區的一半用于存放所述數據接收連接接收的數據,另一半用于存放數據發送連接發送的數據。
7.根據權利要求1或5所述的方法,其特征在干,所述雙エ連接的個數與設定的最大客戶端連接數相等。
8.—種雙エ通信的通信服務器,其特征在干,包括分配模塊、創建模塊、收發模塊,其中所述分配模塊連接所述創建模塊,所述創建模塊連接所述收發模塊,所述收發模塊,包括接收裝置及發送裝置,所述接收裝置連接所述發送裝置,所述分配模塊,用于根據設定的最大客戶端連接數分配緩沖內存大小;所述創建模塊,用于創建雙エ連接并為所述雙エ連接分配數據緩沖區,其中,每個雙エ 連接包括一個數據接收連接以及ー個數據發送連接;所述接收裝置,用于從客戶端接收消息時,從與所述客戶端匹配的雙エ連接的數據接收連接對應的數據緩沖區獲取接收的數據;所述發送裝置,用于發送消息給所述客戶端時,將發送的數據寫入與所述客戶端匹配的雙ェ連接的數據發送連接對應的數據緩沖區,并將所述數據緩沖區的數據發送給所述客戶端。
全文摘要
本發明提供一種雙工通信的方法及通信服務器,上述方法包括以下步驟。通信服務器根據設定的最大客戶端連接數分配緩沖內存大小。所述通信服務器創建雙工連接并為所述雙工連接分配數據緩沖區,其中,每個雙工連接包括一個數據接收連接以及一個數據發送連接。當所述通信服務器從客戶端接收消息時,所述通信服務器從與所述客戶端匹配的雙工連接的數據接收連接對應的數據緩沖區獲取接收的數據,當所述通信服務器發送消息給所述客戶端時,所述通信服務器將發送的數據寫入與所述客戶端匹配的雙工連接的數據發送連接對應的數據緩沖區,并將所述數據緩沖區的數據發送給所述客戶端。
文檔編號H04L5/14GK102546140SQ20121000551
公開日2012年7月4日 申請日期2012年1月10日 優先權日2012年1月10日
發明者胡加明 申請人:蘇州闊地網絡科技有限公司
網友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
主站蜘蛛池模板: 嘉峪关市| 冕宁县| 永新县| 沈阳市| 涡阳县| 专栏| 香格里拉县| 兴宁市| 山丹县| 金堂县| 方城县| 蒙阴县| 志丹县| 南江县| 中牟县| 仪征市| 班玛县| 乐业县| 金山区| 九龙城区| 通河县| 西和县| 德保县| 乌兰察布市| 白朗县| 花垣县| 唐海县| 连州市| 锡林浩特市| 外汇| 福建省| 棋牌| 寻乌县| 岐山县| 金溪县| 千阳县| 昭苏县| 修水县| 汉源县| 双江| 绥棱县|