欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種基于iptv機頂盒的數(shù)據(jù)通信并行處理方法

文檔序號:7869864閱讀:272來源:國知局
專利名稱:一種基于iptv機頂盒的數(shù)據(jù)通信并行處理方法
技術(shù)領(lǐng)域
本發(fā)明涉及IPTV機頂盒消息領(lǐng)域,尤其涉及一種基于IPTV機頂盒的數(shù)據(jù)通信并行處理方法。
背景技術(shù)
隨著IPTV產(chǎn)業(yè)的壯大,用戶對IPTV機頂盒的應(yīng)用要求越來越高,功能越來越多,各個功能模塊之間也不免會有許多通信與消息傳輸?shù)男枨蟆T谕粫r間有許多線程與進程運行,消息傳遞中不免會遇到各種復(fù)雜情況,我們需要進程或線程等待消息時不阻塞其他進程或線程的正常工作,其他進程與線程在工作時也不影響其他程序的消息接收,現(xiàn)有socket技術(shù)一般是使用順序執(zhí)行的方法實現(xiàn),不管怎么樣創(chuàng)建連接、寫操作和讀操作只能順序執(zhí)行下去,這三個功能不是同時并行,在一些并發(fā)要求高的場合,這種方法將造成很大的局限。

發(fā)明內(nèi)容
本發(fā)明所要解決的技術(shù)問題是:針對上述存在的問題,提供一種基于socket的并行化消息傳遞和處理技術(shù)。通過select和多線程編程,使用system V消息隊列讓在多線程或進程的程序中進行并行化消息接收和處理。本發(fā)明采用的技術(shù)方案如下:
一種基于IPTV機頂盒的數(shù)據(jù)通訊并行處理方法包括
步驟1:初始化網(wǎng)絡(luò)端口、system v消息隊列,分別創(chuàng)建消息處理中心線程、讀線程、寫線程、創(chuàng)建連接線程;
步驟2:當(dāng)客戶端有socket請求需要建立新連接時,創(chuàng)建連接線程創(chuàng)建客戶端對應(yīng)新描述符,所述讀線程對創(chuàng)建連接線程發(fā)送的描述符進行讀取操作,所述寫線程對創(chuàng)建連接線程發(fā)送的描述符進行寫操作,創(chuàng)建連接線程將描述符通過消息隊列發(fā)送給讀線程、寫線程和消息處理中心線程。步驟3:當(dāng)消息處理中心線程接收其他進程發(fā)送過來的消息,消息處理中心線程分別與讀線程、寫線程、創(chuàng)建連接線程進行消息發(fā)送;消息處理中心線程或者用于對其他進程發(fā)送的進程消息進消息反饋,然后所述讀線程、寫線程、創(chuàng)建連接線程三個線程之間兩兩進行消息處理。所述步驟2中創(chuàng)建連接線程創(chuàng)建客戶端對應(yīng)新描述符具體過程是:
步驟21: connect線程創(chuàng)建結(jié)構(gòu)體,
步驟22:將結(jié)構(gòu)體指針放入指針數(shù)組中;
步驟23:返回結(jié)構(gòu)體指針在指針數(shù)組中的位置,所述位置即時描述符。所述步驟2中讀線程對創(chuàng)建連接線程發(fā)送的描述符進行讀取具體過程是:讀線程在查詢消息的時候獲取這個描述符,讀線程將獲取到的描述符加入到讀描述符集中,在讀描述符集中重新確定最大標識符的值,然后對讀線程select函數(shù)進行初始化,讀線程select函數(shù)開始輪詢,當(dāng)讀描述符集某個描述符可讀時,便讀取描述符中的內(nèi)容。所述步驟2中寫線程對創(chuàng)建連接線程發(fā)送的描述符進行寫操作具體過程是寫線程在查詢消息的時候獲取這個描述符,寫線程將獲取到的描述符加入到寫描述符集中,在新描述符集中重新確定最大標識符的值,然后對寫線程select函數(shù)進行初始化,寫線程select函數(shù)開始輪詢,當(dāng)讀描述符集需要寫某個描述符時,該描述符可寫,便寫指定描述符。所述步驟3中消息處理中心線程、讀線程、寫線程、創(chuàng)建連接線程兩兩之間通過system v消息隊列進行通信和協(xié)作。所述步驟3中消息處理中心線程與讀線程、寫線程、創(chuàng)建連接線程進行消息傳遞的具體步驟:消息處理中心線程創(chuàng)建連接成功以后,返回一個新的描述符,這個便將新描述符的信息加入到消息內(nèi)容中,通過system v消息隊列通知其他線程。所述步驟3中讀線程與寫線程進行消息傳遞的具體步驟:讀線程將寫讀線程消息數(shù)據(jù)結(jié)構(gòu)填充以后,調(diào)用消息發(fā)送函數(shù),將消息發(fā)送到指定的寫線程消息隊列中。寫線程在查詢消息隊列的時候便可以查詢到這條消息,并處理該消息。所述步驟3中讀線程與創(chuàng)建連接線程進行消息傳遞的具體步驟:讀線程將讀線程消息數(shù)據(jù)結(jié)構(gòu)填充好以后,調(diào)用消息發(fā)送函數(shù),將消息發(fā)送到指定的創(chuàng)建連接線程消息隊列中。創(chuàng)建連接線程在查詢消息隊列的時候便可以查詢到這條消息,并處理該消息。所述步驟3中寫線程與創(chuàng)建連接線程進行消息傳遞的具體步驟:寫線程將寫線程消息數(shù)據(jù)結(jié)構(gòu)填充好以后,調(diào)用消息發(fā)送函數(shù),將消息發(fā)送到指定的創(chuàng)建連接線程消息隊列中。創(chuàng)建連接線程在查詢消息隊列的時候便可以查詢到這條消息,并處理該消息。根據(jù)權(quán)利要求1至9之一所述的一種基于IPTV機頂盒的數(shù)據(jù)通訊并行處理方法,其特征在于所述system v消息隊列是先進先出方式讀取數(shù)據(jù)。綜上所述,由于采用了上述技術(shù)方案,本發(fā)明的有益效果是:
在多進程和線程通信和消息傳遞中,使用并行化消息處理技術(shù),通過使用select編程和多線程技術(shù),通過system V消息隊列,實現(xiàn)底層消息的并行化傳遞和處理,select函數(shù)編程采用非阻塞方式實現(xiàn),使消息傳遞和接收效率更高;SyStemV消息隊列指定消息源,使消息的傳遞更精確


本發(fā)明將通過例子并參照附圖的方式說明,其中:
圖1本發(fā)明連接原理圖。
具體實施例方式本說明書中公開的所有特征,或公開的所有方法或過程中的步驟,除了互相排斥的特征和/或步驟以外,均可以以任何方式組合。本說明書(包括任何附加權(quán)利要求、摘要和附圖)中公開的任一特征,除非特別敘述,均可被其他等效或具有類似目的的替代特征加以替換。即,除非特別敘述,每個特征只是一系列等效或類似特征中的一個例子而已。1、socket通常也稱作〃套接字〃,用于描述IP地址和端口,是一個通信鏈的句柄。
2、所述消息處理中心線程是消息處理中心,所有消息都可以經(jīng)過該中心進行處理。3、Select是完成非阻塞方式(所謂非阻塞方式non-block,就是進程或線程執(zhí)行此函數(shù)時不必非要等待事件的發(fā)生,一旦執(zhí)行肯定返回,以返回值的不同來反映函數(shù)的執(zhí)行情況,如果事件發(fā)生則與阻塞方式相同,若事件沒有發(fā)生則返回一個代碼來告知事件未發(fā)生,而進程或線程繼續(xù)執(zhí)行,所以效率較高)方式工作的程序,它能夠監(jiān)視我們需要監(jiān)視的文件描述符的變化情況——讀寫或是異常。4、讀描述符集指的是讀線程Select函數(shù)的一個讀變量。5、寫描述集指的是讀線程select函數(shù)的一個寫變量。6、讀線程select函數(shù)就是一個select處理函數(shù)。7、寫線程select函數(shù)就是一個select處理函數(shù)。實施例一:一種基于IPTV機頂盒的數(shù)據(jù)通訊并行處理方法包括
步驟1:初始化網(wǎng)絡(luò)端口、system v消息隊列,分別創(chuàng)建消息處理中心線程、讀線程、寫線程、創(chuàng)建連接線程;
步驟2:當(dāng)客戶端有socket請求需要建立新連接時,創(chuàng)建連接線程創(chuàng)建客戶端對應(yīng)新描述符,所述讀線程對創(chuàng)建連接線程發(fā)送的描述符進行讀取操作,所述寫線程對創(chuàng)建連接線程發(fā)送的描述符進行寫操作,創(chuàng)建連接線程將描述符通過消息隊列發(fā)送給讀線程、寫線程和消息處理中心線程。步驟3:當(dāng)消息處理中心線程接收其他進程發(fā)送過來的消息,消息處理中心線程分別與讀線程、寫線程、創(chuàng)建連接線程進行消息發(fā)送;消息處理中心線程或者用于對其他進程發(fā)送的進程消息進消息反饋,然后所述讀線程、寫線程、創(chuàng)建連接線程三個線程之間兩兩進行消息處理。實施例二:在實施例一基礎(chǔ)上,所述步驟2中創(chuàng)建連接線程創(chuàng)建客戶端對應(yīng)新描述符具體過程是:
步驟21: connect線程創(chuàng)建結(jié)構(gòu)體,
步驟22:將結(jié)構(gòu)體指針放入指針數(shù)組中;
步驟23:返回結(jié)構(gòu)體指針在指針數(shù)組中的位置,所述位置即時描述符。實施例三:在實施例一或二基礎(chǔ)上,所述步驟2中讀線程對創(chuàng)建連接線程發(fā)送的描述符進行讀取具體過程是:讀線程在查詢消息的時候獲取這個描述符,讀線程將獲取到的描述符加入到讀描述符集中,在讀描述符集中重新確定最大標識符的值,然后對讀線程select函數(shù)進行初始化,讀線程select函數(shù)開始輪詢,當(dāng)讀描述符集某個描述符可讀時,便讀取描述符中的內(nèi)容。實施例四:在實施例一、二或三基礎(chǔ)上,所述步驟2中寫線程對創(chuàng)建連接線程發(fā)送的描述符進行寫操作具體過程是寫線程在查詢消息的時候獲取這個描述符,寫線程將獲取到的描述符加入到寫描述符集中,在新描述符集中重新確定最大標識符的值,然后對寫線程select函數(shù)進行初始化,寫線程select函數(shù)開始輪詢,當(dāng)讀描述符集需要寫某個描述符時,該描述符可寫,便寫指定描述符。實施例五:在實施例四基礎(chǔ)上,所述步驟3中消息處理中心線程、讀線程、寫線程、創(chuàng)建連接線程兩兩之間通過system v消息隊列進行通信和協(xié)作。
實施例六:在實施例五基礎(chǔ)上,所述步驟3中消息處理中心線程與讀線程、寫線程、創(chuàng)建連接線程進行消息傳遞的具體步驟:消息處理中心線程創(chuàng)建連接成功以后,返回一個新的描述符,這個便將新描述符的信息加入到消息內(nèi)容中,通過system v消息隊列通知其他線程。實施例七:在實施例五或六基礎(chǔ)上,所述步驟3中讀線程與寫線程進行消息傳遞的具體步驟:讀線程將寫讀線程消息數(shù)據(jù)結(jié)構(gòu)填充以后,調(diào)用消息發(fā)送函數(shù),將消息發(fā)送到指定的寫線程消息隊列中。寫線程在查詢消息隊列的時候便可以查詢到這條消息,并處理該消息。實施例八:再實施例六、七或八基礎(chǔ)上,所述步驟3中讀線程與創(chuàng)建連接線程進行消息傳遞的具體步驟:讀線程將讀線程消息數(shù)據(jù)結(jié)構(gòu)填充好以后,調(diào)用消息發(fā)送函數(shù),將消息發(fā)送到指定的創(chuàng)建連接線程消息隊列中。創(chuàng)建連接線程在查詢消息隊列的時候便可以查詢到這條消息,并處理該消息。實施例九:在實施例六至八之一基礎(chǔ)上,所述步驟3中寫線程與創(chuàng)建連接線程進行消息傳遞的具體步驟:寫線程將寫線程消息數(shù)據(jù)結(jié)構(gòu)填充好以后,調(diào)用消息發(fā)送函數(shù),將消息發(fā)送到指定的創(chuàng)建連接線程消息隊列中。創(chuàng)建連接線程在查詢消息隊列的時候便可以查詢到這條消息,并處理該消息。實施例十:在實施例一至九之一基礎(chǔ)上,所述system v消息隊列是先進先出方式讀取數(shù)據(jù)。本發(fā)明并不局限于前述的具體實施方式
。本發(fā)明擴展到任何在本說明書中披露的新特征或任何新的組合,以及披露的任一新的方法或過程的步驟或任何新的組合。
權(quán)利要求
1.一種基于IPTV機頂盒的數(shù)據(jù)通訊并行處理方法,其特征在于包括 步驟1:初始化網(wǎng)絡(luò)端口、system v消息隊列,分別創(chuàng)建消息處理中心線程、讀線程、寫線程、創(chuàng)建連接線程; 步驟2:當(dāng)客戶端有socket請求需要建立新連接時,創(chuàng)建連接線程創(chuàng)建客戶端對應(yīng)新描述符,所述讀線程對創(chuàng)建連接線程發(fā)送的描述符進行讀取操作,所述寫線程對創(chuàng)建連接線程發(fā)送的描述符進行寫操作,創(chuàng)建連接線程將描述符通過消息隊列發(fā)送給讀線程、寫線程和消息處理中心線程; 步驟3:當(dāng)消息處理中心線程接收其他進程發(fā)送過來的消息,消息處理中心線程分別與讀線程、寫線程、創(chuàng)建連接線程進行消息發(fā)送;消息處理中心線程或者用于對其他進程發(fā)送的進程消息進行消息反饋,然后所述讀線程、寫線程、創(chuàng)建連接線程三個線程之間兩兩進行消息處理。
2.根據(jù)權(quán)利要求1所述的一種基于IPTV機頂盒的數(shù)據(jù)通訊并行處理方法,其特征在于所述步驟2中創(chuàng)建連接線程創(chuàng)建客戶端對應(yīng)新描述符具體過程是: 步驟21:創(chuàng)建連接線程創(chuàng)建結(jié)構(gòu)體, 步驟22:將結(jié)構(gòu)體指針放入指針數(shù)組中; 步驟23:返回結(jié)構(gòu)體指針在指針數(shù)組中的位置,所述位置即時描述符。
3.根據(jù)權(quán)利要求2所述的一種基于IPTV機頂盒的數(shù)據(jù)通信并行處理方法,其特征在于所述步驟2中讀線程對創(chuàng)建連接線程發(fā)送的描述符進行讀取具體過程是:讀線程在查詢消息的時候獲取這個 描述符,讀線程將獲取到的描述符加入到讀描述符集中,在讀描述符集中重新確定最大標識符的值,然后對讀線程select函數(shù)進行初始化,讀線程select函數(shù)開始輪詢,當(dāng)讀描述符集某個描述符可讀時,便讀取描述符中的內(nèi)容。
4.根據(jù)權(quán)利要求3之一所述的一種基于IPTV機頂盒的數(shù)據(jù)通信并行處理方法,其特征在于所述步驟2中寫線程對創(chuàng)建連接線程發(fā)送的描述符進行寫操作具體過程是寫線程在查詢消息的時候獲取這個描述符,寫線程將獲取到的描述符加入到寫描述符集中,在新描述符集中重新確定最大標識符的值,然后對寫線程select函數(shù)進行初始化,寫線程select函數(shù)開始輪詢,當(dāng)讀描述符集需要寫某個描述符時,該描述符可寫,便寫指定描述符。
5.根據(jù)權(quán)利要求4所述的一種基于IPTV機頂盒的數(shù)據(jù)通訊并行處理方法,其特征在于所述步驟3中消息處理中心線程、讀線程、寫線程、創(chuàng)建連接線程兩兩之間通過system v消息隊列進行通信和協(xié)作。
6.根據(jù)權(quán)利要求5所述的一種基于IPTV機頂盒的數(shù)據(jù)通訊并行處理方法,其特征在于所述步驟3中消息處理中心線程與讀線程、寫線程、創(chuàng)建連接線程進行消息傳遞的具體步驟:消息處理中心線程創(chuàng)建連接成功以后,返回一個新的描述符,這個便將新描述符的信息加入到消息內(nèi)容中,通過system v消息隊列通知其他線程。
7.根據(jù)權(quán)利要求6所述的一種基于IPTV機頂盒的數(shù)據(jù)通訊并行處理方法,其特征在于所述步驟3中讀線程與寫線程進行消息傳遞的具體步驟:讀線程將寫讀線程消息數(shù)據(jù)結(jié)構(gòu)填充以后,調(diào)用消息發(fā)送函數(shù),將消息發(fā)送到指定的寫線程消息隊列中;寫線程在查詢消息隊列的時候便可以查詢到這條消息,并處理該消息。
8.根據(jù)權(quán)利要求7所述的一種基于IPTV機頂盒的數(shù)據(jù)通訊并行處理方法,其特征在于所述步驟3中讀線程與創(chuàng)建連接線程進行消息傳遞的具體步驟:讀線程將讀線程消息數(shù)據(jù)結(jié)構(gòu)填充好以后,調(diào)用消息發(fā)送函數(shù),將消息發(fā)送到指定的創(chuàng)建連接線程消息隊列中;創(chuàng)建連接線程在查詢消息隊列的時候便可以查詢到這條消息,并處理該消息。
9.根據(jù)權(quán)利要求8所述的一種基于IPTV機頂盒的數(shù)據(jù)通訊并行處理方法,其特征在于所述步驟3中寫線程與創(chuàng)建連接線程進行消息傳遞的具體步驟:寫線程將寫線程消息數(shù)據(jù)結(jié)構(gòu)填充好以后,調(diào)用消息發(fā)送函數(shù),將消息發(fā)送到指定的創(chuàng)建連接線程消息隊列中;創(chuàng)建連接線程在查詢消息隊列的時候便可以查詢到這條消息,并處理該消息。
10.根據(jù)權(quán)利要求1至9之一所述的一種基于IPTV機頂盒的數(shù)據(jù)通訊并行處理方法,其特征在于所述sys tem v消息隊列是先進先出方式讀取數(shù)據(jù)。
全文摘要
本發(fā)明涉及IPTV機頂盒消息領(lǐng)域,尤其涉及一種基于IPTV機頂盒的數(shù)據(jù)通信并行處理方法。本發(fā)明所要解決的技術(shù)問題是針對上述存在的問題,提供一種基于socket的并行化消息傳遞和處理技術(shù)。通過select和多線程編程,使用systemV消息隊列讓在多線程或進程的程序中進行并行化消息接收和處理。本發(fā)明通過分別消息處理中心線程、讀線程、寫線程、創(chuàng)建連接線程之間消息并行傳遞處理,完成與其他進程的通信或者接收客戶端的socket請求數(shù)據(jù)。本發(fā)明主要應(yīng)用于消息數(shù)據(jù)通信領(lǐng)域。
文檔編號H04N21/443GK103096168SQ20121056720
公開日2013年5月8日 申請日期2012年12月25日 優(yōu)先權(quán)日2012年12月25日
發(fā)明者李東旭, 申及 申請人:四川九洲電器集團有限責(zé)任公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
伊春市| 蕲春县| 志丹县| SHOW| 陇南市| 武功县| 肃北| 德州市| 安康市| 林口县| 浮山县| 郓城县| 灌云县| 来安县| 平安县| 台南县| 忻城县| 呈贡县| 临沭县| 昭觉县| 洮南市| 新乐市| 佛冈县| 阿拉尔市| 宜阳县| 普兰县| 乐清市| 鹰潭市| 崇仁县| 宝坻区| 西畴县| 广昌县| 获嘉县| 民勤县| 吉水县| 邓州市| 上栗县| 双辽市| 佳木斯市| 永济市| 冷水江市|