国产精品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>

      一種實現(xiàn)多進程共享端口接收網(wǎng)絡(luò)通知的系統(tǒng)及其方法

      文檔序號:7695126閱讀:215來源:國知局
      專利名稱:一種實現(xiàn)多進程共享端口接收網(wǎng)絡(luò)通知的系統(tǒng)及其方法
      技術(shù)領(lǐng)域
      本發(fā)明涉及一種計算機進程接收網(wǎng)絡(luò)通知的系統(tǒng)及其方法,特別是 一種在同一計算機中的不同進程通過共享網(wǎng)絡(luò)端口接收網(wǎng)絡(luò)通知消息的 通訊系統(tǒng)和通訊方法,屬于計算機網(wǎng)絡(luò)通訊技術(shù)領(lǐng)域。
      背景技術(shù)
      在一個網(wǎng)絡(luò)應(yīng)用系統(tǒng)中,通常都需要多個工作站或網(wǎng)絡(luò)應(yīng)用模塊協(xié) 同工作完成某個事務(wù)。在一個模塊完成某項工作以后,通常要發(fā)送消息 給其它的模塊,將工作狀態(tài)通知給其它模塊。如果應(yīng)用模塊不在同一臺 計算機上,則需要通過網(wǎng)絡(luò)來傳送這些通知消息。在大多數(shù)情況下,大
      家都是基于TCP/IP協(xié)議,來設(shè)計和實現(xiàn)這些通知消息的通訊。
      在TCP/IP協(xié)議中,某個應(yīng)用程序往往僅通過某個特定的網(wǎng)絡(luò)端口 進行網(wǎng)絡(luò)通訊,即該網(wǎng)絡(luò)端口的接收到的所有網(wǎng)絡(luò)數(shù)據(jù)包都將由操作系 統(tǒng)轉(zhuǎn)至所對應(yīng)的應(yīng)用程序進行處理,同時其他應(yīng)用程序無法使用該網(wǎng)絡(luò) 端□。
      然而,在一些網(wǎng)絡(luò)應(yīng)用中,會出現(xiàn)同一臺計算機上同時運行的多應(yīng) 用程序進程需要接收同樣的通知消息的情況。如前所述,通常情況下一 個進程打開的網(wǎng)絡(luò)端口以后,其它程序?qū)o法使用此端口,因而就產(chǎn)生 了網(wǎng)絡(luò)端口沖突的情況。為解決避免網(wǎng)絡(luò)端口沖突,如圖1所示,通常 的解決方法是為每個進程分別分配一個網(wǎng)絡(luò)端口,由發(fā)送方分別向各個 端口發(fā)送數(shù)據(jù)。顯然,通過這種通訊方法同一網(wǎng)絡(luò)通知可能需要占用大 量網(wǎng)絡(luò)帶寬和計算機網(wǎng)絡(luò)端口,很容易造成網(wǎng)絡(luò)資源和計算機系統(tǒng)資源 的浪費。

      發(fā)明內(nèi)容
      本發(fā)明的發(fā)明目的在于解決現(xiàn)有技術(shù)中的問題,提供了一種對同一 計算機中的不同進程共享同一網(wǎng)絡(luò)端口接收網(wǎng)絡(luò)通知消息的系統(tǒng)及其方
      法,從而不需要為每個進程設(shè)置獨立的接收端口,降低了同一網(wǎng)絡(luò)通知 重復(fù)傳遞造成的資源浪費。
      本發(fā)明的發(fā)明目的是通過下述技術(shù)方案予以實現(xiàn)的一種實現(xiàn)多進程共享端口接收網(wǎng)絡(luò)通知的系統(tǒng),包括發(fā)送端和接收 端,特征正在于所述接收端包括共享端口、監(jiān)聽進程、消息隊列和若 干用戶進程;所述共享端口在監(jiān)聽進程的控制下,從網(wǎng)絡(luò)中接收發(fā)送來 的網(wǎng)絡(luò)通知;所述監(jiān)聽進程將所接收的網(wǎng)絡(luò)通知保存在所述消息隊列中; 所述各個用戶進程與該消息隊列相連,復(fù)制消息隊列中的網(wǎng)絡(luò)通知。
      所述消息隊列為循環(huán)隊列。
      一種實現(xiàn)多進程共享端口接收網(wǎng)絡(luò)通知的方法,基于所述權(quán)利要求 l的通訊系統(tǒng)實現(xiàn),其特征在于
      1) 當啟動一個用戶進程時,首先檢測接收端是否已有可用的監(jiān) 聽進程;
      2) 如果有可用的監(jiān)聽進程,則該用戶進程與該監(jiān)聽進程相對應(yīng) 消息隊列相聯(lián)系;如果沒有可用的監(jiān)聽進程,則根據(jù)需要自動啟動監(jiān) 聽進程,并建立相應(yīng)的消息隊列;
      3) 監(jiān)聽進程打開指定的共享端口 ,通過TCP/IP協(xié)議接收發(fā)送端 發(fā)出的網(wǎng)絡(luò)通知;
      4 )監(jiān)聽進程將共享端口接收到的網(wǎng)絡(luò)通知存放到所述消息隊列
      中;
      5) 用戶進程不斷對消息隊列進行輪詢,以獲取新的網(wǎng)絡(luò)通知并 進行處理;
      6) 當所有的用戶進程退出時,監(jiān)聽進程自動關(guān)閉。 所述步驟3、 4包括如下具體步驟
      31) 監(jiān)聽進程打開指定的共享端口;
      32) 監(jiān)聽進程檢查該共享端口是否收到網(wǎng)絡(luò)通知消息包;
      33) 如果接收到網(wǎng)絡(luò)通知消息包,則將該消息包打上時間,然后存 放到消息隊列中;如果沒有接收到網(wǎng)絡(luò)通知消息包,則執(zhí)行步驟34;
      34) 監(jiān)聽進程檢査是否仍有用戶進程在運行,如果所有用戶進程都 己退出,則退出程序;否則執(zhí)行步驟32。
      所述步驟5包括如下具體步驟
      51) 用戶進程啟動與消息隊列之間的消息接收線程;
      52) 消息接收線程通過輪詢從消息隊列査找是否有未接收的網(wǎng)絡(luò) 通知;
      53) 如果找到未接收的網(wǎng)絡(luò)通知,則用戶進程復(fù)制該網(wǎng)絡(luò)通知并進行步驟54;如果沒找到未接收的網(wǎng)絡(luò)通知,返回步驟52;
      54) 用戶進程檢查所復(fù)制網(wǎng)絡(luò)通知是否為本發(fā)送給該用戶進程的 網(wǎng)絡(luò)通知,如果是則執(zhí)行相應(yīng)操作并返回步驟52;如果不是則丟棄該 網(wǎng)絡(luò)通知并返回步驟52;
      55) 當用戶進程結(jié)束時,結(jié)束接收線程。
      本發(fā)明的有益效果是本發(fā)明通過提供了一種對同一計算機中的不 同進程共享同一網(wǎng)絡(luò)端口接收網(wǎng)絡(luò)通知消息的系統(tǒng)及其方法,從而不需
      要為每個進程設(shè)置獨立的接收端口 ,降低了同一網(wǎng)絡(luò)通知重復(fù)傳遞造成
      的資源浪費。


      圖1為現(xiàn)有技術(shù)對接收端多進程的網(wǎng)絡(luò)端口分配結(jié)構(gòu)示意圖; 圖2為多進程共享端口接收網(wǎng)絡(luò)通知系統(tǒng)的結(jié)構(gòu)示意圖; 圖3為多進程共享端口接收網(wǎng)絡(luò)通知的方法流程圖; 圖4為本發(fā)明第一實施例系統(tǒng)結(jié)構(gòu)示意圖。
      具體實施例方式
      下面結(jié)合附圖和實施例對本發(fā)明作進一步描述。
      本發(fā)明針對前述現(xiàn)有技術(shù)中存在的對同一網(wǎng)絡(luò)通知重復(fù)發(fā)送,占 用大量網(wǎng)絡(luò)帶寬和系統(tǒng)資源的問題。對通訊系統(tǒng)中的接收端做了 一定 改進,對同一計算機上經(jīng)常需要接收相同網(wǎng)絡(luò)通知的進程分配一個統(tǒng) 一的共享端口接收網(wǎng)絡(luò)通知,以減輕因資源復(fù)用而帶來的壓力。
      如圖2所示,本發(fā)明的多進程共享端口接收網(wǎng)絡(luò)通知的系統(tǒng)包括發(fā) 送端和接收端。由于發(fā)送端與現(xiàn)有技術(shù)并無區(qū)別,在此就不再詳細敘述。 該接收端中包括一個指定的共享端口、 一個監(jiān)聽進程、 一個消息隊列和 若干程序進程。該共享端口在監(jiān)聽進程的控制下,從網(wǎng)絡(luò)中接收發(fā)送至 本地的網(wǎng)絡(luò)通知。當共享端口接收到網(wǎng)絡(luò)通知后,由監(jiān)聽進程將該網(wǎng)絡(luò) 通知保存在消息隊列中。各個程序進程與該消息隊列相連,對消息隊列 進行輪詢,當發(fā)現(xiàn)隊列中有未接收過的網(wǎng)絡(luò)通知時,即將該網(wǎng)絡(luò)通知復(fù) 制。各個進程將所復(fù)制的網(wǎng)絡(luò)通知拆包,識別是否為發(fā)送給該進程的通 知,如果不是則將該網(wǎng)絡(luò)通知丟棄,如果是則進行相應(yīng)操作。所述消息 隊列為循環(huán)隊列。
      以下為采用上述多進程共享端口接收網(wǎng)絡(luò)通知的系統(tǒng)的具體通訊 方法。如圖3所示,其具體通訊步驟如下-1) 當啟動一個用戶進程時,首先檢測接收端是否已有可用的監(jiān) 聽進程;
      2) 如果有可用的監(jiān)聽進程,則該用戶進程與該監(jiān)聽進程相對應(yīng) 消息隊列相聯(lián)系;如果沒有可用的監(jiān)聽進程,則根據(jù)需要自動啟動監(jiān) 聽進程,并建立相應(yīng)的消息隊列;
      3) 監(jiān)聽進程打開指定的共享端口 ,通過TCP/IP協(xié)議接收發(fā)送端 發(fā)出的網(wǎng)絡(luò)通知;
      4 )監(jiān)聽進程將共享端口接收到的網(wǎng)絡(luò)通知存放到所述消息隊列
      中;
      5) 用戶進程不斷對消息隊列進行輪詢,以獲取新的網(wǎng)絡(luò)通知并 進行處理;
      6) 當所有的用戶進程退出時,監(jiān)聽進程自動關(guān)閉。
      可見,通過上述通訊方法,接收端通過統(tǒng)一的的網(wǎng)絡(luò)接口接收網(wǎng) 絡(luò)通知,而各個不同的用戶進程是通過從消息隊列中復(fù)制相應(yīng)網(wǎng)絡(luò)通 知,實現(xiàn)接收消息的。這大大降低了同一網(wǎng)絡(luò)通知重復(fù)傳遞造成的資 源浪費,提高了通訊效率。
      上述通訊方法中,步驟3、 4的監(jiān)聽進程控制共享端口的接收消息的 方法可以具體包括下述步驟
      31) 監(jiān)聽進程打開指定的共享端口;
      32) 監(jiān)聽進程檢查該共享端口是否收到網(wǎng)絡(luò)通知消息包;
      33) 如果接收到網(wǎng)絡(luò)通知消息包,則將該消息包打上時間,然后存 放到消息隊列中;如果沒有接收到網(wǎng)絡(luò)通知消息包,則執(zhí)行步驟34;
      34) 監(jiān)聽進程檢查是否仍有用戶進程在運行,如果所有用戶進程都 已退出,則退出程序;否則執(zhí)行步驟32。
      上述通訊方法中,步驟5的用戶進程處理網(wǎng)絡(luò)通知的方法可以具體 包括下述步驟
      51) 用戶進程啟動與消息隊列之間的消息接收線程;
      52) 消息接收線程通過輪詢從消息隊列査找是否有未接收的網(wǎng)絡(luò) 通知;
      53) 如果找到未接收的網(wǎng)絡(luò)通知,則用戶進程復(fù)制該網(wǎng)絡(luò)通知并 進行步驟54;如果沒找到未接收的網(wǎng)絡(luò)通知,返回步驟52;
      54) 用戶進程檢查所復(fù)制網(wǎng)絡(luò)通知是否為本發(fā)送給該用戶進程的網(wǎng)絡(luò)通知,如果是則執(zhí)行相應(yīng)操作并返回步驟52;如果不是則丟棄該 網(wǎng)絡(luò)通知并返回步驟52;
      55)當用戶進程結(jié)束時,結(jié)束接收線程。
      本通訊系統(tǒng)特別適合于需要對多個模塊進行頻繁同步更新的通
      訊領(lǐng)域,例如媒體資訊管理系統(tǒng)。圖4即給出了這樣一種媒體資訊管
      理系統(tǒng)。其發(fā)送端按節(jié)目編目發(fā)送媒體信息,接收端需要相應(yīng)更新的 模塊包括自動轉(zhuǎn)碼模塊、素材歸檔模塊、節(jié)目發(fā)布模塊以及其它的節(jié) 目編目模塊,這些模塊均需要依據(jù)發(fā)送端發(fā)送的媒體信息進行更新。 采用本發(fā)明的通訊系統(tǒng)可以大大降低因重復(fù)發(fā)送所述媒體信息所占 用的網(wǎng)絡(luò)帶寬,提高了通訊的效率。
      權(quán)利要求
      1、一種實現(xiàn)多進程共享端口接收網(wǎng)絡(luò)通知的系統(tǒng),包括發(fā)送端和接收端,特征正在于所述接收端包括共享端口、監(jiān)聽進程、消息隊列和若干用戶進程;所述共享端口在監(jiān)聽進程的控制下,從網(wǎng)絡(luò)中接收發(fā)送來的網(wǎng)絡(luò)通知;所述監(jiān)聽進程將所接收的網(wǎng)絡(luò)通知保存在所述消息隊列中;所述各個用戶進程與該消息隊列相連,復(fù)制消息隊列中的網(wǎng)絡(luò)通知。
      2、 如權(quán)利要求l所述的通訊系統(tǒng),其特征在于所述消息隊列為循 環(huán)隊列。
      3、 一種實現(xiàn)多進程共享端口接收網(wǎng)絡(luò)通知的方法,基于所述權(quán)利要 求l的通訊系統(tǒng)實現(xiàn),其特征在于1) 當啟動一個用戶進程時,首先檢測接收端是否已有可用的監(jiān) 聽進程;2) 如果有可用的監(jiān)聽進程,則該用戶進程與該監(jiān)聽進程相對應(yīng) 消息隊列相聯(lián)系;如果沒有可用的監(jiān)聽進程,則根據(jù)需要自動啟動監(jiān) 聽進程,并建立相應(yīng)的消息隊列;3) 監(jiān)聽進程打開指定的共享端口 ,通過TCP/IP協(xié)議接收發(fā)送端 發(fā)出的網(wǎng)絡(luò)通知;4 )監(jiān)聽進程將共享端口接收到的網(wǎng)絡(luò)通知存放到所述消息隊列中;5) 用戶進程不斷對消息隊列進行輪詢,以獲取新的網(wǎng)絡(luò)通知并 進行處理;6) 當所有的用戶進程退出時,監(jiān)聽進程自動關(guān)閉。
      4、 如權(quán)利要求3所述的通訊方法,其特征在于所述步驟3、 4包括如下具體步驟31) 監(jiān)聽進程打開指定的共享端口;32) 監(jiān)聽進程檢査該共享端口是否收到網(wǎng)絡(luò)通知消息包;33) 如果接收到網(wǎng)絡(luò)通知消息包,則將該消息包打上時間,然后存 放到消息隊列中;如果沒有接收到網(wǎng)絡(luò)通知消息包,則執(zhí)行步驟34;34) 監(jiān)聽進程檢查是否仍有用戶進程在運行,如果所有用戶進程都已退出,則退出程序;否則執(zhí)行步驟32。
      5、如權(quán)利要求3所述的通訊方法,其特征在于所述步驟5包 括如下具體步驟51) 用戶進程啟動與消息隊列之間的消息接收線程;52) 消息接收線程通過輪詢從消息隊列查找是否有未接收的網(wǎng)絡(luò) 通知;53) 如果找到未接收的網(wǎng)絡(luò)通知,則用戶進程復(fù)制該網(wǎng)絡(luò)通知并進行步驟54;如果沒找到未接收的網(wǎng)絡(luò)通知,返回步驟52;54) 用戶進程檢查所復(fù)制網(wǎng)絡(luò)通知是否為本發(fā)送給該用戶進程的網(wǎng)絡(luò)通知,如果是則執(zhí)行相應(yīng)操作并返回步驟52;如果不是則丟棄該 網(wǎng)絡(luò)通知并返回步驟52;55) 當用戶進程結(jié)束時,結(jié)束接收線程。
      全文摘要
      一種實現(xiàn)多進程共享端口接收網(wǎng)絡(luò)通知的系統(tǒng),包括發(fā)送端和接收端,特征在于所述接收端包括共享端口、監(jiān)聽進程、消息隊列和若干用戶進程;所述共享端口在監(jiān)聽進程的控制下,從網(wǎng)絡(luò)中接收發(fā)送來的網(wǎng)絡(luò)通知;所述監(jiān)聽進程將所接收的網(wǎng)絡(luò)通知保存在所述消息隊列中;所述各個用戶進程與該消息隊列相連,復(fù)制消息隊列中的網(wǎng)絡(luò)通知。本發(fā)明通過提供這樣一種對同一計算機中的不同進程共享同一網(wǎng)絡(luò)端口接收網(wǎng)絡(luò)通知消息的系統(tǒng)及其方法,從而不需要為每個進程設(shè)置獨立的接收端口,降低了同一網(wǎng)絡(luò)通知重復(fù)傳遞造成的資源浪費。
      文檔編號H04L12/26GK101296130SQ200810113928
      公開日2008年10月29日 申請日期2008年5月30日 優(yōu)先權(quán)日2008年5月30日
      發(fā)明者許紅昆 申請人:北京同步科技有限公司
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1