李尚恩
(東莞理工學(xué)校,東莞 523106)
基于TCP和UDP的局域網(wǎng)遠(yuǎn)程監(jiān)控及協(xié)助的設(shè)計(jì)與實(shí)現(xiàn)
李尚恩
(東莞理工學(xué)校,東莞 523106)
設(shè)計(jì)一款網(wǎng)絡(luò)監(jiān)控及協(xié)助軟件,分別安裝到教師機(jī)和學(xué)生機(jī),教師可以通過(guò)教師端隨時(shí)查看學(xué)生的操練情況,學(xué)生也可以通過(guò)學(xué)生端舉手提問(wèn),教師再通過(guò)教師端給他進(jìn)行遠(yuǎn)程協(xié)助。
TCP;UDP;遠(yuǎn)程監(jiān)控;遠(yuǎn)程協(xié)助
由于計(jì)算機(jī)課程是一門(mén)實(shí)操性很強(qiáng)的課程,為了提高教學(xué)效果,我們的計(jì)算機(jī)課堂教學(xué),大多數(shù)情況下都是在計(jì)算機(jī)實(shí)驗(yàn)室中進(jìn)行,教師利用講臺(tái)的教師機(jī)給學(xué)生講授課堂內(nèi)容,學(xué)生每人操作一臺(tái)計(jì)算機(jī)進(jìn)行實(shí)操練習(xí),若教師想掌握學(xué)生的操練情況,必須得走到每個(gè)學(xué)生的座位旁,才看得到他們的學(xué)習(xí)狀態(tài),如果學(xué)生需要教師的指導(dǎo)和幫助,也需要教師走到學(xué)生跟前,手把手地教他們操作,這樣的方式會(huì)導(dǎo)致教師的負(fù)擔(dān)過(guò)重,教學(xué)效率也極其低下。在計(jì)算機(jī)網(wǎng)絡(luò)普及的今天,我們需要借助計(jì)算機(jī)網(wǎng)絡(luò)的力量來(lái)協(xié)助教學(xué),尤其在一個(gè)計(jì)算機(jī)實(shí)驗(yàn)室的局域網(wǎng)里,網(wǎng)絡(luò)速度可以滿足大量數(shù)據(jù)的傳輸。所以若能有效地利用計(jì)算機(jī)網(wǎng)絡(luò)資源,將既能減輕教師的負(fù)擔(dān),又可以大大地提高教學(xué)效率。本文介紹一種方法,設(shè)計(jì)一款網(wǎng)絡(luò)監(jiān)控及協(xié)助軟件,該軟件分教師端和學(xué)生端,分別安裝到教師機(jī)和全部學(xué)生機(jī),教師可以通過(guò)操作該軟件的教師端,隨時(shí)查看學(xué)生的練習(xí)情況,學(xué)生也可以通過(guò)該軟件的學(xué)生端舉手提問(wèn),然后教師再通過(guò)該軟件的教師端給他進(jìn)行遠(yuǎn)程協(xié)助。既避免教師在實(shí)驗(yàn)中來(lái)來(lái)回來(lái)數(shù)次,又解答了學(xué)生的疑問(wèn),可謂是一舉兩得。
遠(yuǎn)程監(jiān)控,可以分為“監(jiān)”和“控”兩部分,其中“監(jiān)”也就是遠(yuǎn)程監(jiān)視,是指通過(guò)網(wǎng)絡(luò)獲得信息為主,主控端通過(guò)網(wǎng)絡(luò)向受控端發(fā)送監(jiān)視命令,受控端響應(yīng)請(qǐng)求,向主控端發(fā)送自己的桌面截圖。而“控”也就是指遠(yuǎn)程控制,是指通過(guò)網(wǎng)絡(luò)對(duì)遠(yuǎn)程計(jì)算機(jī)進(jìn)行操作的方法,主控端向受控端發(fā)送控制命令,如鎖定、重啟、關(guān)機(jī)等操作,受控端響應(yīng)命令,自身執(zhí)行鎖定、重啟、關(guān)機(jī)等操作??偟膩?lái)說(shuō),遠(yuǎn)程監(jiān)控須做到監(jiān)、控結(jié)合[3]。
遠(yuǎn)程協(xié)助,指導(dǎo)人員可以遠(yuǎn)程控制和操作客戶的電腦,就像直接操作本地電腦一樣,對(duì)指導(dǎo)人員來(lái)講,非常的直接、直觀,對(duì)客戶而言,也可以清晰地看到指導(dǎo)人員的每一步操作,指導(dǎo)人員很快就可以找到問(wèn)題的所在,并加以解決,同時(shí)客戶通過(guò)觀看也學(xué)會(huì)了相應(yīng)的操作。而教師和學(xué)生之間也可以利用這種遠(yuǎn)程協(xié)助實(shí)現(xiàn)教學(xué)問(wèn)題的交流,教師不用走到學(xué)生跟前,學(xué)生就得到教師手把手的輔導(dǎo)和幫助。
基于TCP、UDP的自身特點(diǎn),本文所論述正是利用了它們各自的優(yōu)點(diǎn)設(shè)計(jì)出一個(gè)網(wǎng)絡(luò)監(jiān)控與協(xié)助軟件。在教師端監(jiān)視學(xué)生端時(shí),需要把學(xué)生端的桌面通過(guò)截圖后,再發(fā)送到教師端,由于發(fā)送的圖片字節(jié)數(shù)據(jù)要求完整,教師端接收到完整的圖片字節(jié)數(shù)據(jù)后才能正確顯示,所以這里采用TCP的方式進(jìn)行圖片字節(jié)數(shù)據(jù)的發(fā)送。
(1)圖片數(shù)據(jù)發(fā)送的程序?qū)崿F(xiàn)過(guò)程,學(xué)生端接收到監(jiān)看命令,就對(duì)當(dāng)前的桌面內(nèi)容進(jìn)行截圖,由于圖片數(shù)據(jù)量比較大,為了縮短傳輸時(shí)間,先對(duì)圖片進(jìn)行壓縮,然后再通過(guò)TCP方式發(fā)送到教師端的相應(yīng)端口。教師端檢測(cè)到端口的數(shù)據(jù),便從該端口讀取數(shù)據(jù),把讀到的字節(jié)數(shù)寫(xiě)入文件,當(dāng)連續(xù)讀取到的數(shù)據(jù)等于該圖片的字節(jié)數(shù),表明該圖片已經(jīng)發(fā)送完畢,則在教師端顯示該圖片;若連續(xù)讀取到的數(shù)據(jù)小于該圖片的字節(jié)數(shù),表明該圖片還在發(fā)送中,需要繼續(xù)從端口讀取數(shù)據(jù);若連接讀取到的數(shù)據(jù)大于該圖片的字節(jié)數(shù),則表明該圖片已經(jīng)發(fā)送完畢,并且最后一次從端口中讀取到的數(shù)據(jù)夾雜有下一張圖片的數(shù)據(jù),需要把這次讀取到的數(shù)據(jù)進(jìn)行分割,把前段部分寫(xiě)入文件,把后段數(shù)據(jù)寫(xiě)入下一個(gè)文件。在監(jiān)看的過(guò)程中,學(xué)生端每隔5秒,就通過(guò)TCP的方式向教師端發(fā)送自己的桌面截圖,這樣就實(shí)現(xiàn)了遠(yuǎn)程監(jiān)看功能。
(2)圖片壓縮的實(shí)現(xiàn),客戶端對(duì)自己的桌面進(jìn)行截圖,得到的BMP圖片文件比較大,在1366×768分辨率下,一張BMP圖片文件大小在3M左右,而經(jīng)過(guò)壓縮后得到的JPG圖片文件大小僅為70K左右,減小文件體積的同時(shí)大大提高了傳輸速度。具體的文件壓縮實(shí)現(xiàn)過(guò)程見(jiàn)圖1。
圖1 JPEG壓縮過(guò)程
(3)在學(xué)生舉手部分,由于傳輸?shù)氖巧倭康臄?shù)據(jù),這里采用UDP方式發(fā)送數(shù)據(jù);在教師端向?qū)W生端發(fā)送黑屏命令、關(guān)機(jī)命令時(shí),由于傳輸?shù)氖巧倭康臄?shù)據(jù),這里采用UDP方式發(fā)送數(shù)據(jù);在教師端對(duì)學(xué)生端進(jìn)行遠(yuǎn)程協(xié)助時(shí),由于傳送的是大量的鼠標(biāo)位置及點(diǎn)擊信息,但它在傳輸完整性方面要求不高,所以為了保證傳輸?shù)乃俣?,讓學(xué)生能看到實(shí)時(shí)的鼠標(biāo)操作,這里采用UDP進(jìn)行發(fā)送數(shù)據(jù)。
(4)遠(yuǎn)程協(xié)助數(shù)據(jù)發(fā)送的實(shí)現(xiàn)過(guò)程,學(xué)生端接收到遠(yuǎn)程協(xié)助命令,就對(duì)當(dāng)前的桌面內(nèi)容進(jìn)行截圖,并向教師端發(fā)送,這個(gè)發(fā)送過(guò)程同監(jiān)看功能的發(fā)送過(guò)程類似。當(dāng)教師端接收到學(xué)生端的桌面截圖數(shù)據(jù)后,就顯示學(xué)生端的桌面截圖。教師端通過(guò)操作鼠標(biāo)、鍵盤(pán),并通過(guò)UDP方式向?qū)W生端發(fā)送鼠標(biāo)位置、單擊、雙擊、右鍵單擊、鍵盤(pán)按鍵等信息,學(xué)生端接收到這些信息后,通過(guò)Mouse_event()、Keybd_event()函數(shù)向Windows系統(tǒng)發(fā)送相應(yīng)的鼠標(biāo)消息、鍵盤(pán)消息,這樣學(xué)生端的Windows系統(tǒng)就被教師端操縱起來(lái),學(xué)生端桌面內(nèi)容發(fā)生變化時(shí),再向教師端發(fā)送自己的桌面截圖,這樣一來(lái),在教師端操作學(xué)生端就像操作本地機(jī)器一樣,遠(yuǎn)程協(xié)助功能就實(shí)現(xiàn)了。
(5)教師端界面
局域網(wǎng)遠(yuǎn)程監(jiān)控與協(xié)助的教師端界面見(jiàn)圖2。在該界面上方,有四個(gè)功能按鈕,分別是鎖定客戶、停止、監(jiān)看、遠(yuǎn)程協(xié)助。在該界面下方,顯示了當(dāng)前登錄連接到教師端的所有學(xué)生端,圖中所示僅有一臺(tái)學(xué)生端連接到教師端,該學(xué)生端的IP地址是192.168.0.106,只要通過(guò)鼠標(biāo)點(diǎn)擊該學(xué)生端對(duì)應(yīng)的圖標(biāo),再點(diǎn)擊上方四個(gè)按鈕中的一個(gè),就可以對(duì)該學(xué)生端進(jìn)行相應(yīng)的監(jiān)控與協(xié)助操作。
圖2 教師端界面
(6)學(xué)生端界面
局域網(wǎng)遠(yuǎn)程監(jiān)控與協(xié)助的學(xué)生端界面,見(jiàn)圖3。在該界面中,顯示了遠(yuǎn)程教師端以及本地學(xué)生端的IP地址,TCP、UDP端口,這些信息僅供查看,不允許學(xué)生修改或調(diào)整。在該界面中,只有一個(gè)“舉手”按鈕可供學(xué)生操作,當(dāng)學(xué)生需要教師的協(xié)助時(shí),可用鼠標(biāo)點(diǎn)擊該按鈕,教師端就會(huì)收到一個(gè)舉手信息,顯示在教師端界面相應(yīng)的學(xué)生端圖標(biāo)中,教師就可以選中該圖標(biāo),對(duì)該學(xué)生端進(jìn)行遠(yuǎn)程協(xié)助。
圖3 學(xué)生端界面
(7)監(jiān)視功能
若教師想觀看某學(xué)生的練習(xí)情況,可在教師端選中某個(gè)學(xué)生端對(duì)應(yīng)的圖標(biāo),然后點(diǎn)擊“監(jiān)看”按鈕,馬上就可以看到從該學(xué)生端發(fā)過(guò)來(lái)的桌面截圖,見(jiàn)圖4,監(jiān)看界面會(huì)隨著學(xué)生的操作步驟變化而變化,這樣教師就可以掌握學(xué)生的練習(xí)狀況,從而給予相應(yīng)的表?yè)P(yáng)鼓勵(lì)或協(xié)助。點(diǎn)擊“停止”按鈕,則結(jié)束本次監(jiān)看。
圖4 監(jiān)看功能截圖
(8)鎖定客戶功能
若教師為了不讓學(xué)生操作計(jì)算機(jī),使全體學(xué)生集中精神聽(tīng)講,就可以通過(guò)鎖定客戶功能,使全體學(xué)生機(jī)進(jìn)入黑屏鎖定狀態(tài),屏蔽學(xué)生機(jī)的鍵盤(pán)及鼠標(biāo)信息。方法是在教師端選中全部學(xué)生端的圖標(biāo),然后點(diǎn)擊“鎖定客戶”按鈕。也可以單獨(dú)鎖定某個(gè)學(xué)生端,例如,為了對(duì)正在進(jìn)行非本課堂內(nèi)容操作的學(xué)生提出警告,就可以選中該學(xué)生端對(duì)應(yīng)的圖標(biāo),點(diǎn)擊“鎖定客戶”按鈕,則該學(xué)生機(jī)就會(huì)進(jìn)入黑屏狀態(tài),不可操作計(jì)算機(jī)。
(9)遠(yuǎn)程協(xié)助功能
若有學(xué)生舉手求助,教師就可以選中該學(xué)生端對(duì)應(yīng)的圖標(biāo),再點(diǎn)擊“遠(yuǎn)程協(xié)助”按鈕,此時(shí)馬上會(huì)在教師端看到該學(xué)生的計(jì)算機(jī)桌面,見(jiàn)圖5,并且通過(guò)教師機(jī)的鼠標(biāo)和鍵盤(pán),可以直接操作該學(xué)生機(jī),例如通過(guò)鼠標(biāo)點(diǎn)擊,打開(kāi)某個(gè)菜單,啟動(dòng)某個(gè)程序,通過(guò)鍵盤(pán)輸入文字等。這樣一來(lái),教師就可以通過(guò)遠(yuǎn)程的方式解答了學(xué)生的疑問(wèn)或困難。
圖5 遠(yuǎn)程協(xié)助功能截圖
總的來(lái)講,TCP與UDP有各自特點(diǎn),本文所述剛好利用了它們各自的優(yōu)點(diǎn),設(shè)計(jì)出一款局域網(wǎng)監(jiān)控與協(xié)助軟件,既合理地利用了計(jì)算機(jī)、網(wǎng)絡(luò)的軟硬資源,又使得整個(gè)監(jiān)控與協(xié)助軟件簡(jiǎn)單易用,實(shí)時(shí)高效,提高響應(yīng)速度的同時(shí)又確保了數(shù)據(jù)的完整性。在目前的計(jì)算機(jī)課堂教學(xué)當(dāng)中,尤其是教師資源緊缺的狀態(tài)下,有效地減輕了教師同時(shí)輔導(dǎo)五、六十個(gè)學(xué)生的負(fù)擔(dān)。通過(guò)該軟件可輕易地掌握學(xué)生的操練情況,也可以很方便地給學(xué)生提供遠(yuǎn)程協(xié)助,大大提高了教學(xué)效率。該軟件在圖像壓縮、截圖算法方面還有待進(jìn)一步提高,接下來(lái)還會(huì)繼續(xù)深入學(xué)習(xí)研究,把整個(gè)監(jiān)控與協(xié)助系統(tǒng)的功能實(shí)現(xiàn)得更完整,更高效。
[1] (美)卡雷爾等著.TCP/IP協(xié)議原理與應(yīng)用(第4版)[M].金名等譯.清華大學(xué)出版社,2014,1
[2] 羅軍舟,黎波濤,楊明等著.TCP/IP協(xié)議及網(wǎng)絡(luò)編程技術(shù)[M].清華大學(xué)出版社,2014,10
[3] 崔彥鋒,許小榮著.VB網(wǎng)絡(luò)與遠(yuǎn)程控制編程實(shí)例教程[M].科學(xué)出版社,2002,8
[4] 張海藩,呂云翔著.軟件工程(第4版)[M].人民郵電出版社,2013,9
[5] 李立宗,劉云,張志強(qiáng)著.VB程序設(shè)計(jì)教程(第2版)[M].南開(kāi)大學(xué)出版社2012,9
[6] 陳雪松,王海巍.JPEG壓縮編碼算法應(yīng)用及發(fā)展前景研究[J].計(jì)算機(jī)與數(shù)字工程,2009(01)
[7] 王海軍,劉彩霞,程?hào)|年.一種基于UDP的可靠傳輸協(xié)議分析與研究[J].計(jì)算機(jī)應(yīng)用研究,2005(11)
Design and Implementation of LAN Remote Monitoring and Assistance Based on TCP and UDP
LI Shang'en
(Dongguan Science and Technology School,Dongguan 523106)
Introduces amethod to design a network monitoring and assistance s of tware,teachers and students are respectively mounted to the machine,the teacher can practice at any time to see student terminal by teacher terminal,students can also through the student terminal to raise questions,teachers through teachers' of fer them the remote assistance.
TCP;UDP;Remote Monitoring;Remote Assistance
1007-1423(2015)07-0076-04
10.3969/j.issn.1007-1423.2015.07.021
李尚恩(1980-),男,廣東廉江人,碩士研究生,講師,軟件設(shè)計(jì)師,研究方向?yàn)檐浖こ?/p>
2015-01-16
2015-02-15