国产精品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)方法及系統(tǒng)的制作方法_3

      文檔序號:9290041閱讀:來源:國知局
      中的發(fā)送進程ID以及預先配置的路由 表,判斷通信發(fā)生在節(jié)點間還是節(jié)點內(nèi);根據(jù)發(fā)送報文長度,判斷通信方式采用UDP還是 TCP ; 56、 TCP組播線程池的實現(xiàn):根據(jù)預先配置的路由表,解析組播地址中包括的IP地址, 創(chuàng)建TCP發(fā)送線程池,并通過TCP發(fā)送線程池完成多地址TCP報文發(fā)送的并行處理。2. 如權(quán)利要求1所述的輕量級跨平臺消息中間件的實現(xiàn)方法,其特征在于,所述步驟 S2包括如下子步驟: 521、 初始化進程通信所需的緩沖區(qū)及緩沖區(qū)長度; 522、 創(chuàng)建消息隊列的"讀/寫"管道以及相應的文件描述符; 通過"讀/寫"管理標記消息隊列接收或讀取數(shù)據(jù),將管道的文件描述符作為I/O復用 函數(shù)Select的參數(shù);Select函數(shù)允許進程指示內(nèi)核等待消息隊列、UDP通信Socket、TCP通 信Socket中任意一個接收到數(shù)據(jù),并僅在一個或多個事件發(fā)生或經(jīng)過預先指定的時間后 才喚醒進程; 523、 創(chuàng)建節(jié)點間短報文通信所需的UDP通信Socket : 分別創(chuàng)建UDP通信接收和發(fā)送Socket,并根據(jù)進程ID為每個進程分配唯一的端口號, 將接收Socket與接收端口號綁定; 524、 創(chuàng)建節(jié)點間短報文通信所需的TCP通信Socket : 分別創(chuàng)建TCP通信接收和發(fā)送Socket,并根據(jù)進程ID為每個進程分配唯一的端口號, 將接收Socket與接收端口號綁定; 525、 創(chuàng)建消息隊列接收線程: 創(chuàng)建一個并發(fā)性線程,用于消息隊列接收數(shù)據(jù)。3. 如權(quán)利要求2所述的輕量級跨平臺消息中間件的實現(xiàn)方法,其特征在于,所述步驟 S4包括: 分配一個描述字集,并將描述字集初始化; 將"讀"管道文件描述符、UDP通信Socket句柄、TCP通信Socket句柄加入到描述字 集;使用Select函數(shù)輪詢描述字集,等待接收數(shù)據(jù); 通過查詢"讀/寫"管道的狀態(tài),來完成消息中間件的讀取數(shù)據(jù)主線程與消息隊列接收 線程之間的同步;一旦消息隊列線程接收到數(shù)據(jù),讀取數(shù)據(jù)主線程可通過查詢"讀"管道文 件描述符的狀態(tài)變更,獲悉消息隊列已收到數(shù)據(jù),從而將該數(shù)據(jù)返回給應用進程。4. 如權(quán)利要求3所述的輕量級跨平臺消息中間件的實現(xiàn)方法,其特征在于,所述步驟 S5包括: 為應用進程提供數(shù)據(jù)發(fā)送接口函數(shù),應用進程填入需要發(fā)送的數(shù)據(jù)以及發(fā)送的目的進 程ID ;消息中間件根據(jù)預設的路由表和目的進程ID,查找進程ID和目的節(jié)點的匹配關(guān)系, 以獲得消息發(fā)送的地址; 判斷發(fā)送的報文長度是否小于大報文數(shù)據(jù)長度門限值,如小于大報文數(shù)據(jù)長度門限 值,則判斷數(shù)據(jù)發(fā)往本節(jié)點或外節(jié)點;如發(fā)往本節(jié)點,將數(shù)據(jù)發(fā)送至應用進程所述的消息隊 列;如發(fā)往外節(jié)點采用IPD通信Socket發(fā)送數(shù)據(jù); 如果大于或等于大報文數(shù)據(jù)長度門限值,則根據(jù)發(fā)送目的進程ID和預設的路由表,判 斷數(shù)據(jù)發(fā)送是否為點播,在數(shù)據(jù)發(fā)送為點播時,直接連接目的進程通過TCP通信Socket發(fā) 送數(shù)據(jù);在數(shù)據(jù)發(fā)送為組播時,通過TCP發(fā)送線程池發(fā)送數(shù)據(jù)。5. 如權(quán)利要求4所述的輕量級跨平臺消息中間件的實現(xiàn)方法,其特征在于,所述步驟 S6包括: 根據(jù)預先配置的路由表,解析組播地址中的IP地址; 創(chuàng)建TCP發(fā)送線程池; 將TCP通信Socket設置為非阻塞模式; 連接發(fā)送目的地址,通過TCP發(fā)送線程池完成多地址TCP報文發(fā)送的并行處理。6. -種輕量級跨平臺消息中間件的實現(xiàn)系統(tǒng),其特征在于,包括如下模塊: 路由表配置模塊,用于配置路由表,路由表包括進程ID、IP地址、組播地址路由關(guān)系信 息,消息中間件根據(jù)路由表解析出消息轉(zhuǎn)發(fā)控制規(guī)則; 進程初始化模塊,用于初始化應用進程,創(chuàng)建該進程通信所需要的相關(guān)資源; 消息隊列接收線程模塊,用于調(diào)用消息隊列接收函數(shù),將消息隊列接收線程阻塞,如消 息隊列收到數(shù)據(jù),將數(shù)據(jù)拷貝至進程專屬緩沖區(qū)中,并改寫消息隊列"讀"與"寫"管道狀 態(tài); 進程讀取數(shù)據(jù)接口模塊,用于利用POSIX庫的I/O復用Select函數(shù),輪詢消息隊列 "寫"管道、UDP通信Socket和TCP通信Socket,如收到數(shù)據(jù)則將數(shù)據(jù)拷貝至進程專屬緩沖 區(qū)中,并改寫消息隊列"讀"與"寫"管道狀態(tài); 進程發(fā)送數(shù)據(jù)接口模塊,用于根據(jù)發(fā)送報文頭中的發(fā)送進程ID以及預先配置的路由 表,判斷通信發(fā)生在節(jié)點間還是節(jié)點內(nèi);根據(jù)發(fā)送報文長度,判斷通信方式采用UDP還是 TCP ; TCP組播線程池模塊,用于根據(jù)預先配置的路由表,解析組播地址中包括的IP地址,創(chuàng) 建TCP發(fā)送線程池,并通過TCP發(fā)送線程池完成多地址TCP報文發(fā)送的并行處理。7. 如權(quán)利要求6所述的輕量級跨平臺消息中間件的實現(xiàn)系統(tǒng),其特征在于,所述進程 初始化模塊包括如下單元: 緩沖區(qū)初始化單元,用于初始化進程通信所需的緩沖區(qū)及緩沖區(qū)長度: 管道及描述符創(chuàng)建單元,用于創(chuàng)建消息隊列的"讀/寫"管道以及相應的文件描述符: 通過"讀/寫"管理標記消息隊列接收或讀取數(shù)據(jù),將管道的文件描述符作為I/O復用 函數(shù)Select的參數(shù);Select函數(shù)允許進程指示內(nèi)核等待消息隊列、UDP通信Socket、TCP通 信Socket中任意一個接收到數(shù)據(jù),并僅在一個或多個事件發(fā)生或經(jīng)過預先指定的時間后 才喚醒進程; UDP通信Socket創(chuàng)建單元,用于創(chuàng)建節(jié)點間短報文通信所需的UDP通信Socket : 分別創(chuàng)建UDP通信接收和發(fā)送Socket,并根據(jù)進程ID為每個進程分配唯一的端口號, 將接收Socket與接收端口號綁定; TCP通信Socket創(chuàng)建單元,用于創(chuàng)建節(jié)點間短報文通信所需的TCP通信Socket : 分別創(chuàng)建TCP通信接收和發(fā)送Socket,并根據(jù)進程ID為每個進程分配唯一的端口號, 將接收Socket與接收端口號綁定; 消息隊列接收線程創(chuàng)建單元,用于創(chuàng)建一個并發(fā)性線程,用于消息隊列接收數(shù)據(jù)。8. 如權(quán)利要求7所述的輕量級跨平臺消息中間件的實現(xiàn)系統(tǒng),其特征在于,所述進程 讀取數(shù)據(jù)接口模塊包括: 分配一個描述字集,并將描述字集初始化; 將"讀"管道文件描述符、UDP通信Socket句柄、TCP通信Socket句柄加入到描述字 集;使用Select函數(shù)輪詢描述字集,等待接收數(shù)據(jù); 通過查詢"讀/寫"管道的狀態(tài),來完成消息中間件的讀取數(shù)據(jù)主線程與消息隊列接收 線程之間的同步;一旦消息隊列線程接收到數(shù)據(jù),讀取數(shù)據(jù)主線程可通過查詢"讀"管道文 件描述符的狀態(tài)變更,獲悉消息隊列已收到數(shù)據(jù),從而將該數(shù)據(jù)返回給應用進程。9. 如權(quán)利要求8所述的輕量級跨平臺消息中間件的實現(xiàn)系統(tǒng),其特征在于,所述進程 發(fā)送數(shù)據(jù)接口模塊包括: 為應用進程提供數(shù)據(jù)發(fā)送接口函數(shù),應用進程填入需要發(fā)送的數(shù)據(jù)以及發(fā)送的目的進 程ID ;消息中間件根據(jù)預設的路由表和目的進程ID,查找進程ID和目的節(jié)點的匹配關(guān)系, 以獲得消息發(fā)送的地址; 判斷發(fā)送的報文長度是否小于大報文數(shù)據(jù)長度門限值,如小于大報文數(shù)據(jù)長度門限 值,則判斷數(shù)據(jù)發(fā)往本節(jié)點或外節(jié)點;如發(fā)往本節(jié)點,將數(shù)據(jù)發(fā)送至應用進程所述的消息隊 列;如發(fā)往外節(jié)點采用IPD通信Socket發(fā)送數(shù)據(jù); 如果大于或等于大報文數(shù)據(jù)長度門限值,則根據(jù)發(fā)送目的進程ID和預設的路由表,判 斷數(shù)據(jù)發(fā)送是否為點播,在數(shù)據(jù)發(fā)送為點播時,直接連接目的進程通過TCP通信Socket發(fā) 送數(shù)據(jù);在數(shù)據(jù)發(fā)送為組播時,通過TCP發(fā)送線程池發(fā)送數(shù)據(jù)。10. 如權(quán)利要求9所述的輕量級跨平臺消息中間件的實現(xiàn)系統(tǒng),其特征在于,所述TCP 組播線程池模塊包括: 根據(jù)預先配置的路由表,解析組播地址中的IP地址; 創(chuàng)建TCP發(fā)送線程池; 將TCP通信Socket設置為非阻塞模式; 連接發(fā)送目的地址,通過TCP發(fā)送線程池完成多地址TCP報文發(fā)送的并行處理。
      【專利摘要】本發(fā)明提供一種輕量級跨平臺消息中間件的實現(xiàn)方法,包括:S1、配置路由表,路由表包括進程ID、IP地址、組播地址路由關(guān)系信息,消息中間件根據(jù)路由表解析出消息轉(zhuǎn)發(fā)控制規(guī)則;S2、初始化應用進程,創(chuàng)建該進程通信所需要的相關(guān)資源;S3、消息隊列接收線程實現(xiàn);S4、進程讀取數(shù)據(jù)接口實現(xiàn);S5、進程發(fā)送數(shù)據(jù)接口實現(xiàn);S6、TCP組播線程池的實現(xiàn)。本發(fā)明還提供一種輕量級跨平臺消息中間件的實現(xiàn)系統(tǒng)。
      【IPC分類】H04L12/863, H04L29/08
      【公開號】CN105007238
      【申請?zhí)枴緾N201510435554
      【發(fā)明人】陳龍
      【申請人】中國船舶重工集團公司第七0九研究所
      【公開日】2015年10月28日
      【申請日】2015年7月22日
      當前第3頁1 2 3 
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1