張金金
摘要:在Qt開(kāi)發(fā)的支持下,技術(shù)人員能夠更加便捷地使用開(kāi)發(fā)庫(kù)進(jìn)行軟件開(kāi)發(fā),這是一種在軟件開(kāi)發(fā)領(lǐng)域的重大突破,而相關(guān)的技術(shù)也一直都是通信領(lǐng)域關(guān)注的焦點(diǎn),Qt開(kāi)發(fā)庫(kù)可以為技術(shù)人員提供通信函數(shù),這對(duì)技術(shù)人員是一種非常有效的輔助,但Qt開(kāi)發(fā)環(huán)境也有一些不可避免的缺陷,例如在多網(wǎng)卡環(huán)境下,使用Qt開(kāi)發(fā)的情況下,軟件無(wú)法與制定的網(wǎng)卡綁定,接收數(shù)據(jù)方面會(huì)受到影響。本文研究的就是在Qt開(kāi)發(fā)的環(huán)境下,多網(wǎng)卡計(jì)算機(jī)的組播通信技術(shù),研究的目的就是為了解決出現(xiàn)的一系列的問(wèn)題,也是對(duì)相關(guān)理論的補(bǔ)充。
【關(guān)鍵詞】Qt開(kāi)發(fā) 計(jì)算機(jī) 組播通信
計(jì)算機(jī)技術(shù)近年來(lái)的發(fā)展速度令人驚嘆,組播技術(shù)的發(fā)展由于其各方面的優(yōu)勢(shì),受到了眾多用戶的追捧。尤其是可以節(jié)約資源的特點(diǎn),是眾多用戶給予其良好評(píng)價(jià)的基礎(chǔ),數(shù)據(jù)的實(shí)時(shí)傳送以及多媒體會(huì)議等應(yīng)用也讓為用戶提供了諸多便利。Qt是基于C++的一種界面應(yīng)用框架,其結(jié)構(gòu)非常小巧,具有高度模塊化的特點(diǎn),而且Qt開(kāi)發(fā)的可重用性非常良好,跨平臺(tái)的優(yōu)勢(shì)非常突出。Qt開(kāi)發(fā)可以通過(guò)信號(hào)以及槽機(jī)在任意對(duì)象之間實(shí)現(xiàn)通信操作,所以不會(huì)受到作用關(guān)系方面的限制,在數(shù)量上比較自由,是一種具有多樣性以及靈活性的程序框架。如今在世界范圍內(nèi)已經(jīng)被廣泛應(yīng)用,很多技術(shù)人員利用Qt進(jìn)行軟件開(kāi)發(fā),但在通信軟件的開(kāi)發(fā)領(lǐng)域,始終存在著一些問(wèn)題。
1 Qt概述
Qt是諾基亞開(kāi)發(fā)的一種程序框架??梢詾殚_(kāi)發(fā)者提供所需的所有功能,Qt開(kāi)發(fā)非常容易面向?qū)ο?,擴(kuò)展性也非常好,允許組件編程,目前Qt已經(jīng)是世界范圍內(nèi)很多成功的應(yīng)用程序的重要基礎(chǔ)。最初Qt只是為跨平臺(tái)軟件的開(kāi)發(fā)提供統(tǒng)一精美的接口,支持網(wǎng)絡(luò)編程以及用戶編程,Qt的開(kāi)發(fā)庫(kù)與MFC比較類(lèi)似,但Qr開(kāi)發(fā)庫(kù)中還封裝了一些不同系統(tǒng)的訪問(wèn)細(xì)節(jié),可以支持跨平臺(tái),這是Qt的優(yōu)勢(shì),也是Qr在全球范圍內(nèi)得到支持的魅力所在。因?yàn)槠鋬?yōu)越的跨平臺(tái)性,可以讓開(kāi)發(fā)者減少很多工作量,因此Qr的用戶量大也是情有可原的。
網(wǎng)絡(luò)編程其實(shí)是一種軟件開(kāi)發(fā)方面的重要內(nèi)容。傳統(tǒng)的編程方法大多是采用Socket套接字來(lái)進(jìn)行操作,套接字是比較難以掌握的方法,其中包含著太多的函數(shù)以及其他數(shù)據(jù)結(jié)構(gòu),使用上也有很大難度,而Qt則是把一些數(shù)據(jù)和函數(shù)進(jìn)行封裝,讓開(kāi)發(fā)者避免了面對(duì)那些復(fù)雜的函數(shù)和結(jié)構(gòu),讓開(kāi)發(fā)的周期可以大大縮短,代碼也保持著簡(jiǎn)潔。只是在多網(wǎng)卡環(huán)境下,使用Qt開(kāi)發(fā)在進(jìn)行數(shù)據(jù)收發(fā)的時(shí)候.無(wú)法綁定一些指定的網(wǎng)卡上,這就導(dǎo)致了開(kāi)發(fā)者無(wú)法接受到一些數(shù)據(jù),這種現(xiàn)象是本文研究的主要問(wèn)題。
2 組播通信技術(shù)
2.1 任意源組播
任意源組播是一種針對(duì)接受者的處理方式而劃分出來(lái)的一種,可以簡(jiǎn)稱為ASM。在ASM中,發(fā)送者可以隨時(shí)向任意一個(gè)組播組發(fā)送數(shù)據(jù),也能夠隨時(shí)接收到一些信息。因此ASM中,組播組的位置和數(shù)量都是不存在任何限制的,只是作為接受者也無(wú)法真正預(yù)知到組播源的位置,ASM在地址分配、訪問(wèn)控制以及源發(fā)現(xiàn)等方面存在著一些天然上的缺陷,因此ASM在使用中依舊存在著一些限制。
2.2 指定源組播
指定源組播也是一種處理方式,簡(jiǎn)稱為SSM。SSM不同于傳統(tǒng)的模型,是可以預(yù)知到組播源位置的,介意在接受者以及指定的組播源間建立起一條專(zhuān)用的轉(zhuǎn)發(fā)路徑,與ASM相比,SSM實(shí)現(xiàn)了路由協(xié)議的簡(jiǎn)化,讓組播傳輸?shù)姆€(wěn)定性以及安全性得到了增強(qiáng),而在SSM實(shí)施的過(guò)程中,要求用戶的網(wǎng)絡(luò)斷提供網(wǎng)絡(luò)組播的支持,同時(shí)網(wǎng)絡(luò)以及應(yīng)用支持相關(guān)的協(xié)議。因此SSM與ASM是有著極大的差別的,組播通信的機(jī)制不同。
3 基于ot開(kāi)發(fā)環(huán)境的多網(wǎng)卡計(jì)算機(jī)組播通信技術(shù)運(yùn)行存在的常見(jiàn)故障
在使用Qt開(kāi)發(fā)的過(guò)程中,首先創(chuàng)建出一個(gè)組播接受的套接字,然后使用函數(shù)將接受的數(shù)據(jù)套接字綁定到本機(jī)的網(wǎng)卡以及端口號(hào)。這里要注意設(shè)置好端口復(fù)用。最后是將套接字引入到制定的組播組中,通過(guò)函數(shù)建立起來(lái)的信號(hào)槽點(diǎn)對(duì)數(shù)據(jù)進(jìn)行接收和發(fā)送。如果是單網(wǎng)卡的計(jì)算機(jī),在進(jìn)行數(shù)據(jù)的接受以及發(fā)送時(shí),情況是比較正常的,一旦是多網(wǎng)卡的計(jì)算機(jī),運(yùn)行上述的程序時(shí),就會(huì)出現(xiàn)無(wú)法接受數(shù)據(jù)的情況,這就是常見(jiàn)的故障,也是目前Qt開(kāi)發(fā)遇到的主要問(wèn)題。
4 基于Qt開(kāi)發(fā)環(huán)境的多網(wǎng)卡計(jì)算機(jī)組播通信技術(shù)運(yùn)行故障解決政策
基于上文中提到的問(wèn)題,首先在構(gòu)造函數(shù)中載入適合的動(dòng)態(tài)鏈接庫(kù),利用函數(shù)創(chuàng)建出一個(gè)數(shù)據(jù)報(bào)類(lèi)的套接字,設(shè)置允許其他的套接字可以接受此套接字的地址。設(shè)置結(jié)構(gòu)體的屬性,并制定套接字的協(xié)議、端口以及IP地址,使用合適的函數(shù)將套接字綁定到制定的端口。然后需要?jiǎng)?chuàng)建出一個(gè)結(jié)構(gòu)體,設(shè)置好屬性,制定IP地質(zhì)以及多網(wǎng)卡計(jì)算機(jī)上指定的網(wǎng)卡IP,使用函數(shù)設(shè)置好套接字并加入。最后將套接字通過(guò)函數(shù)與之前的數(shù)據(jù)報(bào)類(lèi)的套接字聯(lián)系在一起,這樣就可以使用Qt提供的函數(shù)接受以及發(fā)送數(shù)據(jù)。
5 結(jié)論
Qt自帶的一些程序在多網(wǎng)卡的計(jì)算機(jī)中,無(wú)法與指定的網(wǎng)卡綁定,這一問(wèn)題一直影響著一些軟件的開(kāi)發(fā),而通過(guò)不斷對(duì)Qt進(jìn)行研究,分析組播通信的相關(guān)原理以及數(shù)據(jù)的激勵(lì),指出了Qt開(kāi)發(fā)庫(kù)中的函數(shù)存在的漏洞,這一就可以創(chuàng)建出一些套接字來(lái)解決這一問(wèn)題。
參考文獻(xiàn)
[1]張偉,王鳳英.GRE over IPsec VPN結(jié)合NAT的構(gòu)建方案研究與實(shí)現(xiàn)[J].山東理工大學(xué)學(xué)報(bào)(自然科學(xué)版),2017(03): 6-10.
[2]匡文波,童文杰,個(gè)人信息安全與隱私保護(hù)的實(shí)證研究 基于創(chuàng)新擴(kuò)散理論的大數(shù)據(jù)應(yīng)用視角[J].武漢大學(xué)學(xué)報(bào)(人文科學(xué)版),2016 (06):104-114.
[3]陳艷,李志遠(yuǎn),馬莉,基于遺傳算法的優(yōu)化QoS組播路由算法[J],桂林航天工業(yè)學(xué)院學(xué)報(bào),2016(03): 309-314.
[4]李元元,基于PolSK正交調(diào)制技術(shù)的TWDM-PON系統(tǒng)實(shí)現(xiàn)組播業(yè)務(wù)通信[J]計(jì)算機(jī)與現(xiàn)代化,2016(02): 94-97.
[5]孫磊,常東旭,白楊.基于GOOSE的區(qū)域保護(hù)控制系統(tǒng)站間通信技術(shù)[J].廣東電力,2015(04):62-67.