孟桂英 陳元賢
【摘 要】 本文論述了采用網(wǎng)絡(luò)技術(shù)和遠(yuǎn)程控制技術(shù)設(shè)計(jì)和實(shí)現(xiàn)一個(gè)小型網(wǎng)絡(luò)教室的過程。本系統(tǒng)局域網(wǎng)采用星型網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu),網(wǎng)絡(luò)教室采用客戶/服務(wù)器模式,實(shí)現(xiàn)網(wǎng)絡(luò)教室的教師機(jī)和學(xué)生機(jī)的實(shí)時(shí)通信。
【關(guān)鍵詞】客戶/服務(wù)器 線程 網(wǎng)絡(luò)教室 Windows Socket
一、緒論
隨著多媒體數(shù)據(jù)傳輸技術(shù)的日益發(fā)展和完善,多媒體教學(xué)已可將各種多媒體信息引入教學(xué),以完善和改進(jìn)教學(xué)模式、內(nèi)容、手段、方法,并促進(jìn)整個(gè)教育思想、理論的根本變革。在學(xué)校的計(jì)算機(jī)機(jī)房或?qū)嶒?yàn)室中,要求教師機(jī)可以通過屏幕廣播將課件內(nèi)容廣播到學(xué)生機(jī),使學(xué)生同步接收教師的講課內(nèi)容,教師機(jī)可以給學(xué)生機(jī)發(fā)送簡短的文字消息,學(xué)生機(jī)可給教師機(jī)發(fā)送舉手消息。對于傳統(tǒng)的輔助教學(xué)模式來說,這是一種教學(xué)上的突破。
二、系統(tǒng)設(shè)計(jì)
1.需求分析
軟件需求分析所要做的工作是深入描述軟件的功能和性能,確定軟件設(shè)計(jì)的限制和軟件同其它系統(tǒng)元素接口細(xì)節(jié),定義軟件的其它有效性需求。
根據(jù)分析,本系統(tǒng)主要包括局域網(wǎng)組建和網(wǎng)絡(luò)教室的開發(fā)。因此,要設(shè)計(jì)局域網(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu),進(jìn)行組網(wǎng)。局域網(wǎng)組建成功后,在此網(wǎng)絡(luò)上進(jìn)行網(wǎng)絡(luò)教室的開發(fā)。網(wǎng)絡(luò)教室主要主要實(shí)現(xiàn)以下功能:
(1)屏幕廣播:用于將教師機(jī)的電腦屏幕畫面實(shí)時(shí)傳播給全部學(xué)生機(jī)。實(shí)現(xiàn)教師機(jī)和學(xué)生機(jī)電腦屏幕的同步,以便學(xué)生能直觀地看到教師的操作方式。
(2)文件分發(fā):教師機(jī)能夠選擇一個(gè)文件分發(fā)給所有的學(xué)生機(jī)。學(xué)生機(jī)能夠自動(dòng)接受教師機(jī)傳輸過來的文件,并且存儲(chǔ)在本地磁盤。
(3)遠(yuǎn)程命令:教師可向?qū)W生終端發(fā)送黑屏鎖定、遠(yuǎn)程復(fù)位、遠(yuǎn)程關(guān)機(jī)、瀏覽進(jìn)程、殺死進(jìn)程的命令。
(4)網(wǎng)上消息:教師機(jī)可以給本課堂全體學(xué)生發(fā)送簡短文字消息,同全體學(xué)生進(jìn)行實(shí)時(shí)交互。
(5)遠(yuǎn)程配置:教師機(jī)可以查看學(xué)生機(jī)的相關(guān)配置信息。
(6)電子舉手:學(xué)生隨時(shí)通過電子舉手向教師示意,同教師進(jìn)行實(shí)時(shí)交互。
2.網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)設(shè)計(jì)
目前,大多數(shù)LAN使用的拓?fù)浣Y(jié)構(gòu)有3種:星型拓?fù)浣Y(jié)構(gòu)、環(huán)型拓?fù)浣Y(jié)構(gòu)、總線型拓?fù)浣Y(jié)構(gòu)。根據(jù)學(xué)校的實(shí)驗(yàn)室環(huán)境和系統(tǒng)的需求,本系統(tǒng)局域網(wǎng)拓?fù)浣Y(jié)構(gòu)采用星型拓?fù)浣Y(jié)構(gòu),該結(jié)構(gòu)有利于資源充分利用和實(shí)驗(yàn)室管理員的管理。網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)的設(shè)計(jì)如圖1所表示。交換機(jī)采用STAR公司的S1824F型號的交換機(jī),此型號的交換機(jī)用24個(gè)接口,能夠?qū)崿F(xiàn)24臺(tái)計(jì)算機(jī)終端的互連通信。
3.軟件系統(tǒng)結(jié)構(gòu)和功能模塊設(shè)計(jì)
根據(jù)局域網(wǎng)拓?fù)浣Y(jié)構(gòu)的設(shè)計(jì)和網(wǎng)絡(luò)教室通信的需要,軟件系統(tǒng)采用C/S結(jié)構(gòu)??蛻?服務(wù)器系統(tǒng)主要由客戶機(jī)、服務(wù)器和網(wǎng)絡(luò)系統(tǒng)三個(gè)部分組成。本網(wǎng)絡(luò)教室分為教師機(jī)和學(xué)生機(jī),且在本系統(tǒng)中,教師機(jī)和學(xué)生機(jī)互為客戶端和服務(wù)器端。
本系統(tǒng)中教師機(jī)可以進(jìn)行屏幕廣播、向?qū)W生機(jī)發(fā)送簡單的文字消息、黑屏鎖定學(xué)生機(jī)等;學(xué)生機(jī)則響應(yīng)教師機(jī)的各種命令并可以發(fā)送電子舉手消息??傮w功能模塊圖如圖2、圖3所示。
4.系統(tǒng)通信
在采用客戶/服務(wù)器的系統(tǒng)中,通常是客戶機(jī)和服務(wù)器共同完成對應(yīng)用程序的處理。在客戶機(jī)和服務(wù)器之間就需要進(jìn)行交互,即必須利用消息機(jī)制在這兩者之間進(jìn)行多次通信。
系統(tǒng)具體通信過程采用Windows Sockets通信實(shí)現(xiàn),應(yīng)用程序用Windows Sockets的API實(shí)現(xiàn)相互之間的通信。Windows Sockets又利用下層的網(wǎng)絡(luò)通信協(xié)議(即TCP/IP協(xié)議)功能,與操作系統(tǒng)調(diào)用實(shí)現(xiàn)實(shí)際的通信工作。
三、系統(tǒng)主要功能模塊的實(shí)現(xiàn)
小型網(wǎng)絡(luò)教室設(shè)計(jì)為教師機(jī)和學(xué)生機(jī),各個(gè)功能通過教師機(jī)和學(xué)生機(jī)之間的通信共同完成。具體主要運(yùn)用了Windows Sockets技術(shù)、Windows多任務(wù)中的進(jìn)程和線程技術(shù)、以及MFC來實(shí)現(xiàn)教師機(jī)和學(xué)生機(jī)端的各個(gè)功能。
1.監(jiān)聽請求和遠(yuǎn)程命令
系統(tǒng)中教師機(jī)和學(xué)生機(jī)互為客戶端和服務(wù)端,無論在教師機(jī)還是在學(xué)生機(jī),都需要向?qū)Ψ秸埱蠓?wù)和提供服務(wù),而另一方則需要監(jiān)聽對方的請求信息。
(1)學(xué)生機(jī)端監(jiān)聽TCP連接請求的設(shè)計(jì)與實(shí)現(xiàn)
學(xué)生機(jī)端需要監(jiān)聽教師機(jī)端發(fā)出請求信息,這就需要在學(xué)生機(jī)端創(chuàng)建一個(gè)監(jiān)聽教師機(jī)TCP連接請求的線程。在線程回調(diào)函數(shù)中,創(chuàng)建一個(gè)使用端口5148的CSocket對象,并使用監(jiān)聽函數(shù)監(jiān)聽TCP連接請求,用Accept()接受教師機(jī)的TCP連接請求,Receive()遠(yuǎn)程控制命令代碼,然后調(diào)用ReceiveFileMsg()函數(shù)根據(jù)接收到的遠(yuǎn)程控制命令代碼,進(jìn)行相應(yīng)的處理。最后用Close()關(guān)閉套接字。
(2)教師機(jī)監(jiān)聽TCP連接請求的設(shè)計(jì)與實(shí)現(xiàn)
同樣,教師機(jī)也需要監(jiān)聽學(xué)生機(jī)的請求,具體的實(shí)現(xiàn)過程與學(xué)生機(jī)類似。
(3)學(xué)生機(jī)接收遠(yuǎn)程命令實(shí)現(xiàn)過程
學(xué)生機(jī)作為被監(jiān)控方,能夠接收來自教師機(jī)的命令,并根據(jù)接收到的命令進(jìn)行相應(yīng)的處理。在系統(tǒng)中主要設(shè)計(jì)了一個(gè)函數(shù)來識(shí)別接收到的命令,入口參數(shù)分別表示接收教師機(jī)發(fā)送過來的遠(yuǎn)程控制的代碼和教師機(jī)的SOCKADDR_IN結(jié)構(gòu)。出口參數(shù)表示此函數(shù)執(zhí)行是否成功。
2.屏幕廣播的實(shí)現(xiàn)
本模塊實(shí)現(xiàn)教師機(jī)的屏幕廣播到同一局域網(wǎng)段的所有學(xué)生機(jī),使學(xué)生機(jī)屏幕與教師機(jī)屏幕同步的功能。為了能夠?qū)崿F(xiàn)此功能,教師機(jī)和學(xué)生機(jī)采用面向無連接的數(shù)據(jù)報(bào)文方式(UDP)通信。
在教師機(jī)每隔1秒就截取屏幕,并保存為位圖文件,然后將此位圖文件廣播給所有的學(xué)生機(jī)。在學(xué)生機(jī)接收教師機(jī)發(fā)送過來的位圖文件內(nèi)容,并將此文件內(nèi)容寫入學(xué)生機(jī)本地磁盤的位圖文件,并實(shí)時(shí)將此位圖文件加載到對話框上。
由于位圖文件比較大,在圖片的抓取和傳輸過程中使用了圖片的壓縮算法。
3.文件分發(fā)和接收
本模塊實(shí)現(xiàn)將教師機(jī)的文件分發(fā)給同一局域網(wǎng)段的所有學(xué)生機(jī),學(xué)生機(jī)將接收到的文件保存在本地磁盤的功能。為了能夠?qū)崿F(xiàn)此功能,教師機(jī)與學(xué)生機(jī)需要采用面向無連接的數(shù)據(jù)報(bào)文方式(UDP)通信。
文件分發(fā)和接收的工作流程如下:首先,在教師機(jī)選擇需要分發(fā)的文件,獲取文件名和文件長度廣播給局域網(wǎng)內(nèi)所有學(xué)生機(jī);然后,再獲取文件內(nèi)容分發(fā)給所有學(xué)生機(jī)。學(xué)生機(jī)根據(jù)收到的文件名在本地創(chuàng)建同名文件,然后將接收到的文件內(nèi)容寫入本地同名文件中,完成文件的接收。
四、結(jié)束語
小型網(wǎng)絡(luò)教室的基本功能已經(jīng)初步完成,并應(yīng)用于學(xué)校的實(shí)驗(yàn)室。局域網(wǎng)系統(tǒng)拓?fù)浣Y(jié)構(gòu)設(shè)計(jì)合理,網(wǎng)絡(luò)教室功能適用性強(qiáng),具有可擴(kuò)展性。它能夠進(jìn)一步提高現(xiàn)代教學(xué)水平,提高學(xué)生的上課效率,加強(qiáng)教師對課堂情況的掌握,節(jié)約教學(xué)資源,促進(jìn)教育事業(yè)的發(fā)展。
參考文獻(xiàn):
[1]葉俊民.軟件工程.北京:清華大學(xué)出版社,2006.
[2]張文.TCP/IP基礎(chǔ).北京:電子工業(yè)出版社,2007.