• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      C#實現(xiàn)基于Socket的信息教學(xué)系統(tǒng)設(shè)計

      2019-04-04 01:46:10呂鵬輝張起貴
      現(xiàn)代電子技術(shù) 2019年2期
      關(guān)鍵詞:多線程數(shù)據(jù)交換教學(xué)平臺

      呂鵬輝 張起貴

      關(guān)鍵詞: 信息技術(shù); 教學(xué)平臺; Socket; TCP/IP通信; 多線程; 數(shù)據(jù)交換

      中圖分類號: TN911?34; TP311 ? ? ? ? ? ? ? ? 文獻標識碼: A ? ? ? ? ? ? ? ? ? ?文章編號: 1004?373X(2019)02?0080?05

      Design of Socket?based information teaching system using C#

      L? Penghui, ZHANG Qigui

      (Taiyuan University of Technology, Taiyuan 030600, China)

      Abstract: An information teaching platform based on the C/S multithreading architecture is designed and established by using the .NET based Winform framework, Socket?based TCP/IP communication mode, and extensible markup language XML, so as to bring more learning convenience to teachers, students and parents. Two functions are mainly realized on the information teaching platform: stand?alone testing and online learning. During stand?alone testing, students select question types from the preset question library for self?practice. During online learning, the client and server exchange data in the same local network by means of the Socket?based TCP/IP communication mode. The Microsoft Access database in the server is used to store student information, and students′ names, IDs and scores can be directly exported in the form of .xls file. The whole system has good robustness in switches between various modules and data exchange efficiency between client and server.

      Keywords: information technology; teaching platform; Socket; TCP/IP communication; multithreading; data exchange

      0 ?引 ?言

      自2016年開始,山西省把信息技術(shù)的考試(Office,Photoshop,F(xiàn)LASH)納入中學(xué)生升學(xué)考試科目中,本文在對市場上信息技術(shù)教輔產(chǎn)品的充分調(diào)研的基礎(chǔ)上,發(fā)現(xiàn)各類產(chǎn)品參差不齊,功能上、質(zhì)量上不能很好地切入教師、學(xué)生的學(xué)習(xí)生活中,單一的做題模式難免會讓教師、學(xué)生產(chǎn)生排斥心理[1?2]。

      針對以上需求,本文借助Microsoft開發(fā)的.NET Framework[3]平臺及開源控件集CSkin開發(fā)簡易活潑的學(xué)生端界面和教師端界面,并且利用基于Socket的TCP/IP通信模式及相關(guān)的數(shù)據(jù)庫語言實現(xiàn)服務(wù)端(教師端)和客戶端(學(xué)生端)的多線程學(xué)習(xí)交互,使學(xué)習(xí)更加有趣高效[4]。

      1 ?系統(tǒng)總體架構(gòu)設(shè)計

      本系統(tǒng)主要由兩部分組成:教師服務(wù)端和學(xué)生客戶端。教師服務(wù)端的主要功能是:監(jiān)聽學(xué)生客戶端的上線、提交作業(yè)等一系列請求,同時向?qū)W生發(fā)放試卷,開啟考試等操作,將學(xué)生作業(yè)下載到本地轉(zhuǎn)成特殊格式的文件進行批改評分,將學(xué)生成績存儲在Microsoft Access數(shù)據(jù)庫[5],還有值得提及的功能是教師端可以開啟學(xué)生的互評模式[6]。學(xué)生客戶端的主要功能分為兩大模塊:自學(xué)自測模塊和課堂互動模塊。自學(xué)自測模塊屬于完全的單機模式,是學(xué)生自己課前課后自行操作學(xué)習(xí)的模塊。課堂互動模塊則需要基于Socket的通信協(xié)議,在局域網(wǎng)中與教師服務(wù)端及其他學(xué)生端進行互動式學(xué)習(xí)模式[7]。系統(tǒng)總體架構(gòu)設(shè)計框圖如圖1所示。

      2 ?教師服務(wù)端總體設(shè)計

      教師服務(wù)端最基本的任務(wù)就是監(jiān)聽學(xué)生的連接與斷開,在檢測到學(xué)生在線的前提下才可實現(xiàn)和學(xué)生客戶端交換信息。首先在這里引入.NET Framework中的System.Net.Sockets命名空間[8],定義一個叫作SocketServer的類,調(diào)用Socket類創(chuàng)建socketWatch對象負責監(jiān)聽學(xué)生客戶端。其主要工作流程是:教師服務(wù)端開啟Socket服務(wù),調(diào)用socketWatch對象中的Listen()方法,設(shè)置監(jiān)聽隊列的長度,然后調(diào)用Thread類創(chuàng)建threadWatch對象,設(shè)置threadWatch對象屬性IsBackground=true來啟動后臺線程監(jiān)聽,調(diào)用threadWatch對象的Start()方法啟動監(jiān)聽線程;然后自定義一個方法SocketConnection()負責持續(xù)不斷地監(jiān)聽學(xué)生端的請求,調(diào)用Socket類中的Accept()方法實現(xiàn)對學(xué)生對應(yīng)信息的返回。最后調(diào)用threadWatch對象的Abort()和socketWatch對象的Close()方法終止線程和關(guān)閉連接并釋放所有資源。這里還添加了System.Data.OleDb命名空間,相比于其他數(shù)據(jù)處理類來說,OLE DB(Object Link and embed)[9]是微軟戰(zhàn)略性地通向不同數(shù)據(jù)源的低級應(yīng)用程序接口,不僅包括標準數(shù)據(jù)接口開放數(shù)據(jù)庫連通性的結(jié)構(gòu)化問題語言(SQL)能力,還具有面向其他非SQL數(shù)據(jù)類型的通路。為了能夠更方便地使用Office軟件這里使用的數(shù)據(jù)庫是微軟提供的Access數(shù)據(jù)庫,利用其對學(xué)生的基本信息、學(xué)生作業(yè)成績及學(xué)生互評結(jié)果進行存儲、修改與查詢。服務(wù)器主程序軟件設(shè)計流程圖如圖2所示。

      3 ?學(xué)生客戶端總體設(shè)計

      3.1 ?學(xué)生客戶端結(jié)構(gòu)

      學(xué)生客戶端可分為兩大模塊:自學(xué)自測和課堂互動。自學(xué)自測主要實現(xiàn)學(xué)生課前、課外對課本知識的預(yù)習(xí)與回顧,這里主要用到了.NET Framework中的Winform模塊中的控件類與一些常見方法編寫的外部框架,利用XML(Extensible Markup Language)[10]和JSFL(FLASH JavaScript)[11?12]可讀取FLASH文件的屬性特性,進行對FLASH及Office,Photoshop操作題的評分。課堂互動模塊是學(xué)生客戶端的主要模塊,主要運用了socket的TCP/IP通信模式及數(shù)據(jù)庫一系列知識搭建起來的多線程互動平臺,實現(xiàn)了學(xué)生客戶端可以實時和教師服務(wù)端交換數(shù)據(jù),監(jiān)測教師服務(wù)端發(fā)放作業(yè)、試卷狀態(tài),訪問教師服務(wù)端學(xué)生成績信息等。客戶端主程序軟件設(shè)計流程圖如圖3所示。

      3.2 ?自學(xué)自測模塊

      學(xué)生在進入自測界面時可以選擇客觀測試與主觀測試??陀^測試主要為單項選擇題、多項選擇題、判斷題和填空題四類客觀題型。主觀測試包含Microsoft Office(Word,PPT,Excel),Photoshop及FLASH操作題,這里主要討論FLASH操作題的評分算法。在分析了以往對FLASH操作題自動評分的各類方案與算法后發(fā)現(xiàn),以往的評分標準與評分算法存在很多需要改進的地方,比如,在單純應(yīng)用JSFL(FLASH JavaScript)對FLASH文件進行評分判斷時,只能做到一題對應(yīng)一個代碼塊。JSFL代碼沒有很好的擴展性,加大了程序員以及使用者的工作量。在考慮到代碼的擴展性與魯棒性的前提下,在應(yīng)用JSFL訪問FLASH作品的前提下引入XML(Extensible Markup Language)這個中間“傳遞因子”,利用在.NET Framework類庫中的System.Xml命名空間和JSFL能夠直接讀取指定XML文件(var xml=XML(FLfile.read("file:///C|/test.xml").replace(/^<\?xml\s+[^>]*\?>/i,""));)來傳送FLASH作品的各個屬性值與傳出評分結(jié)果[13?14]。

      3.3 ?課堂互動模塊

      課堂互動主要是實現(xiàn)教師與單個學(xué)生、學(xué)生和多個學(xué)生之間的通信,主要流程是:

      1) 學(xué)生進入登錄界面LoginFrm,輸入對應(yīng)學(xué)生姓名、學(xué)號及教師端服務(wù)器IP端口號,登入服務(wù)器。

      2) 合法用戶登入系統(tǒng)后會首先進入課堂互動主界面ClassInteractionMainFrm。

      3) 在進入主界面后可以看到三個子模塊,分別為:課堂作業(yè)HomeworkFrm、聯(lián)網(wǎng)練習(xí)OnlineTest、作品互評MutualWorks。

      4) 課堂作業(yè)功能模塊主要實現(xiàn)將學(xué)生完成的作業(yè)答案進行DES加密,并提取有效關(guān)鍵字生成XML格式的文件發(fā)送至教師服務(wù)端,由教師服務(wù)端解析對其評分。這里調(diào)用OpenFileDialog類新建一個fileDialog對象,然后調(diào)用Enviroment.GetFolderPath()方法實現(xiàn)點擊提交作業(yè)按鈕打開指定文件夾,使用fileDialog的Filter屬性指定文件類型。

      5) 聯(lián)網(wǎng)練習(xí)模塊首先需要學(xué)生在線點擊下載試題從教師服務(wù)端下載試題,教師端確認學(xué)生成功下載試卷以后,學(xué)生客戶端可點擊開始答題進行在線聯(lián)網(wǎng)練習(xí)。這里利用文件流類FileStream新建對象fileStm創(chuàng)建指定名稱的XML文件,用來存放成功下載的試卷[15?16]。成功下載試卷后點擊開始答題按鈕后,跳轉(zhuǎn)聯(lián)網(wǎng)答題界面OnlineExamFrm,引用System.Xml.Linq.XElement,調(diào)用XElement類新建strXml對象加載試卷XML文件。

      6) 作品互評功能塊學(xué)生可以實現(xiàn)上傳作品、更新作品庫和針對感興趣作品進行評價,真正做到學(xué)生與學(xué)生之間的學(xué)習(xí)交流。這里調(diào)用OpenFileDialog類新建一個fileDialog對象,設(shè)置fileDialog的Multiselect屬性為true,這樣既可對多個文件進行選擇同時上傳。學(xué)生作品以文件流FileStream的形式上傳至服務(wù)器端,服務(wù)器會以每個學(xué)生的學(xué)號為單位進行儲存。在服務(wù)器端開啟互評后,學(xué)生客戶端可訪問服務(wù)器進入作品互評界面WorksEvaFrm,學(xué)生可選擇其他同學(xué)的作品進行評價。評價完成后點擊提交,評價結(jié)果上傳至服務(wù)器數(shù)據(jù)庫進行歸類存儲。

      3.4 ?客服兩端多線程Socket通信的實現(xiàn)

      不論是服務(wù)器程序需要同時為多個客戶端提供服務(wù),還是客戶端不同請求之間的相互跳轉(zhuǎn),都必須要求系統(tǒng)提供多線程機制來滿足不同的需求。以服務(wù)器為例,每當客戶端發(fā)出請求時,服務(wù)器程序就會產(chǎn)生一個線程和客戶端建立一個套接字連接,以便客服兩端更加高效的工作。

      C#.NET框架實現(xiàn)多線程的Socket通信需引入System.Net,System.Net.Sockets,System.Threading。在客戶端程序中首先需要創(chuàng)建用于接收服務(wù)端消息的線程Thread threadClient = null和創(chuàng)建用于交換數(shù)據(jù)的Socket對象[17?18]。然后使用指定的地址族、套接字類型和協(xié)議初始化System.Net.Sockets.Socket類的新實例對象socketClient,實例化接收服務(wù)端消息的線程threadClient = new Thread(RecMsg)。設(shè)置線程為后臺運行threadClient.IsBackground=true,threadClient.Start()下一步需要將當前實例狀態(tài)修改運行狀態(tài):System.Threading.ThreadState.Running。同理,服務(wù)器端也是需要創(chuàng)建socket對象和thread對象,不同的是相較于客戶端,服務(wù)器程序需要處理來自不同IP、端口數(shù)據(jù),這需要將監(jiān)聽到的所有客戶端的數(shù)據(jù)放置一個并發(fā)集合線程中。創(chuàng)建Dictionnary類的dictSocket通信集合對象和Dictionnary類的dictThread并發(fā)集合線程對象,并使用add()方法將新建的線程添加至線程集合中去。

      4 ?系統(tǒng)整體測試分析

      軟件測試分析是軟件開發(fā)過程中最后也是關(guān)鍵的一步,其把握著軟件質(zhì)量關(guān),在其中發(fā)揮著至關(guān)重要的作用,無論是對軟件安全性的保障,還是軟件功能性的檢驗,都有著無可替代的地位。先后對服務(wù)器端、客戶端各個模塊及模塊之間的集成接口進行相關(guān)測試,最后對本系統(tǒng)進行了整體測試,在總結(jié)相關(guān)測試結(jié)果之后對系統(tǒng)整體進行記錄分析。

      測試過程與結(jié)果分析:在同一局域網(wǎng)網(wǎng)絡(luò)中,任意部署一臺電腦作為服務(wù)器,部署三臺電腦作為客戶端進行測試。首先開啟打包好的服務(wù)器.exe文件,啟動服務(wù)器應(yīng)用,開啟Socket服務(wù),等待客戶端連接;客戶端打開服務(wù)端.exe文件,在與服務(wù)器連接之前先測試客戶端單機自測模塊的相應(yīng)功能,之后客戶端輸入服務(wù)器對應(yīng)的IP地址及端口與其建立連接。服務(wù)器端學(xué)生狀態(tài)和客戶端登錄狀態(tài)如圖4、圖5所示。

      在客戶端登入服務(wù)器后點擊提交作業(yè),彈出選擇對應(yīng)文件對話框,選定文件后點擊“確定”提交作業(yè)。客戶端會提示提交成功,同時在服務(wù)器端也有狀態(tài)提示,并且對應(yīng)作業(yè)文件存儲至服務(wù)器端homework文件夾。服務(wù)器端接收學(xué)生作業(yè)狀態(tài)如圖6所示。

      在服務(wù)器端的主界面點擊“批改作業(yè)”可查看學(xué)生作業(yè)的完成情況,并自動評出分數(shù)。在學(xué)生端界面點擊“聯(lián)網(wǎng)練習(xí)”,可看到兩個按鈕:“下載試卷”和“開始答題”,當服務(wù)器端導(dǎo)入練習(xí)文件并且開啟考試時服務(wù)端才可以下載試卷成功并開始答題。服務(wù)器端學(xué)生考試狀態(tài)和客戶端考試界面如圖7、圖8所示。

      在學(xué)生答完題提交試卷以后,服務(wù)器端可以自動評分并且導(dǎo)出成績?yōu)閤ls文件進行存儲。在“作品互評”模塊中,客戶端可以隨意從服務(wù)器調(diào)取其他客戶端的作品文件進行評價評分并提交至服務(wù)器。

      5 ?結(jié) ?語

      本文利用C# .NET Framework的Winform框架和基于Socket的TCP/IP的通信模式搭建設(shè)計了信息教學(xué)平臺,其實質(zhì)上是一款圖形界面的系統(tǒng)軟件。C# .NET Framework的Winform框架和基于Socket的TCP/IP的通信模式搭建設(shè)計的信息教學(xué)平臺對于多線程的引入有效地提高了客服兩端數(shù)據(jù)傳輸?shù)膶崟r性,實現(xiàn)了一對多、多對多的實時操作。經(jīng)驗證,本設(shè)計基本滿足了中學(xué)信息技術(shù)教學(xué)的基本要求,為廣大師生的教學(xué)、學(xué)習(xí)帶來了極大的方便與樂趣。

      注:本文通訊作者為張起貴。

      參考文獻

      [1] 曲良東,黃春毅.學(xué)生綜合測評助手軟件設(shè)計與開發(fā)[J].教育教學(xué)論壇,2016(45):262?263.

      QU Liangdong, HUANG Chunyi. Design and development of students′ comprehensive evaluation assistant software [J]. Education teaching forum, 2016(45): 262?263.

      [2] 陳傳鎮(zhèn).教學(xué)資源文件管理系統(tǒng)的設(shè)計與實現(xiàn)[D].哈爾濱:哈爾濱工業(yè)大學(xué),2015.

      CHEN Chuanzhen. Design and implementation of the teaching resource management system [D]. Harbin: Harbin Institute of Technology, 2015.

      [3] 張旭..NET框架下分布式通信技術(shù)的探析[J].無線互聯(lián)科技,2016(5):6?7.

      ZHANG Xu. Exploration on the .NET framework distributed communication technology [J]. Wireless Internet technology, 2016(5): 6?7.

      [4] 何誠,邵乾飛,袁浩,等.基于Socket實現(xiàn)Android (java)與C#的同步通信[J].無線互聯(lián)科技,2015(2):15?16.

      HE Cheng, SHAO Ganfei, YUAN Hao, et al. Simultaneous communication between Android (java) and C # based on Socket [J]. Wireless Internet technology, 2015(2): 15?16.

      [5] 王秀民,孫霜青,李春玲,等.理化實驗室管理信息系統(tǒng)的研究與實現(xiàn)[J].實驗技術(shù)與管理,2015,32(8):134?136.

      WANG Xiumin, SUN Shuangqing, LI Chunling, et al. Research and realization of management information system of physics and chemistry laboratory [J]. Experimental technology and management, 2015, 32(8): 134?136.

      [6] WATSON K, NAGEL C. C#入門經(jīng)典[M].喬立波,譯.北京:清華大學(xué)出版社,2006.

      WATSON K, NAGEL C. Classic of C # introduction [M]. QIAO Libo, translation. Beijing: Tsinghua University Press, 2006.

      [7] 朱文龍,秦興,戴泓,等.基于Socket的Android聊天系統(tǒng)的設(shè)計與實現(xiàn)[J].工業(yè)控制計算機,2016,29(3):48?49.

      ZHU Wenlong, QIN Xing, DAI Hong, et al. Design and implementation of Android chat system based on Socket [J]. Industrial control computer, 2016, 29(3): 48?49.

      [8] 喬英蘋.基于socket通信的文件服務(wù)系統(tǒng)設(shè)計與實現(xiàn)[D].濟南:山東大學(xué),2016.

      QIAO Yingping. Design and implementation of document service system based on socket communication [D]. Jinan: Shandong University, 2016.

      [9] 任子強.基于Microsoft OLE DB方式實現(xiàn)安全隔離網(wǎng)關(guān)對數(shù)據(jù)庫數(shù)據(jù)的采集[J].通訊世界,2015(2):68?69.

      REN Ziqiang. Implementation of database data collection using security isolation gateway based on Microsoft OLE DB mode [J]. Telecom world, 2015(2): 68?69.

      [10] 艾蘭·瑞尼爾,戴維德·杜賓,斯芬伯格·麥奎因,等.XML標記的語義[J].出版科學(xué),2016,24(4):18?26.

      RAINIER A, DUBIN D, MCQUEEN S, et al. Towards a semantics for XML markup [J]. Publishing journal, 2016, 24(4): 18?26.

      [11] 何立峰.應(yīng)用FLASH JavaScript API解析fla文件[J].電腦編程技巧與維護,2012(5):66?70.

      HE Lifeng. Application of FLASH JavaScript API to parse fla files [J]. Computer programming skills & maintenance, 2012(5): 66?70.

      [12] 王德東,楊永華,盧暢.基于JSFL的FLASH自動測評系統(tǒng)研究[J].浙江海洋學(xué)院學(xué)報(自然科學(xué)版),2010,29(1):89?94.

      WANG Dedong, YANG Yonghua, LU Chang. Research of automatic assessing system based on JSFL [J]. Journal of Zhejiang Ocean University (Natural science), 2010, 29(1): 89?94.

      [13] 項潔,姜華強,周燕君.基于JSFL的FLASH作品自動評價技術(shù)[J].杭州師范大學(xué)學(xué)報(自然科學(xué)版),2011,10(2):174?180.

      XIANG Jie, JIANG Huaqiang, ZHOU Yanjun. Auto?evaluation techniques of flash works based on JSFL [J]. Journal of Hangzhou Normal University (Natural sciences edition), 2011, 10(2): 174?180.

      [14] 盛磊.基于JSFL技術(shù)的FLASH自動評價中間件設(shè)計[J].杭州師范大學(xué)學(xué)報(自然科學(xué)版),2015(5):554?560.

      SHENG Lei. Auto?evaluation middleware of FLASH based on JSFL [J]. Journal of Hangzhou Normal University (Natural sciences edition), 2015(5): 554?560.

      [15] 張珊珊,邱桃榮,張虹,等.基于多線程的文件推送系統(tǒng)的設(shè)計與實現(xiàn)[J].南昌大學(xué)學(xué)報(工科版),2013,35(4):392?398.

      ZHANG Shanshan, QIU Taorong, ZHANG Hong, et al. Design and implementation of file transmission system based on multi?threading [J]. Journal of Nanchang University (Engineering & technology), 2013, 35(4): 392?398.

      [16] 胡柯,頡譚成,董秀林.基于TCP/IP和Socket的網(wǎng)絡(luò)文件傳送[J].河南科技大學(xué)學(xué)報(自然科學(xué)版),2003,24(4):53?56.

      HU Ke, XIE Tancheng, DONG Xiulin. Network files transmission based on TCP/IP and Socket [J]. Journal of Henan University of Science and Technology (Natural science), 2003, 24(4): 53?56.

      [17] 顧梅華.基于C#.NET的文件傳輸關(guān)鍵技術(shù)研究與系統(tǒng)實現(xiàn)[D].成都:電子科技大學(xué),2013.

      GU Meihua. Research and system implementation of key technology of file transfer based on C # .NET [D]. Chengdu: University of Electronic Science and Technology of China, 2013.

      [18] 韋興柳,鐘誠,李智,等.大數(shù)據(jù)文件和混合文件的多線程并行下載[J].計算機工程與應(yīng)用,2012,48(14):84?89.

      WEI Xingliu, ZHONG Cheng, LI Zhi, et al. Multi?thread parallel downloading of big data files and mixed files [J]. Computer engineering and applications, 2012, 48(14): 84?89.

      猜你喜歡
      多線程數(shù)據(jù)交換教學(xué)平臺
      XBRL在財務(wù)報表網(wǎng)絡(luò)數(shù)據(jù)交換中的應(yīng)用
      Java并發(fā)工具包對并發(fā)編程的優(yōu)化
      專業(yè)學(xué)位研究生職業(yè)危害控制技術(shù)課程創(chuàng)新型教學(xué)平臺建設(shè)研究
      基于WordPress構(gòu)建項目化課程教學(xué)平臺的研究
      中職學(xué)校教學(xué)資源管理系統(tǒng)的設(shè)計與實現(xiàn)
      數(shù)字積分法插補仿真實驗教學(xué)系統(tǒng)開發(fā)
      科技視界(2016年18期)2016-11-03 22:03:32
      大學(xué)計算機基礎(chǔ)“微課程”設(shè)計1
      基于多線程文件傳輸關(guān)鍵技術(shù)研究與實現(xiàn)
      網(wǎng)頁爬蟲技術(shù)的關(guān)鍵技術(shù)研究探索
      一種基于多線程的高速磁盤鏡像算法
      秦安县| 麻城市| 定日县| 阿克| 象山县| 稻城县| 阜新| 张北县| 墨江| 沙田区| 武冈市| 白山市| 九江市| 东山县| 子洲县| 玛沁县| 陇西县| 密云县| 嘉兴市| 和龙市| 江阴市| 勐海县| 南江县| 弥勒县| 遵义县| 县级市| 杭锦后旗| 温泉县| 五华县| 阿坝县| 万载县| 盐边县| 洛阳市| 芜湖市| 青州市| 郯城县| 海宁市| 莒南县| 信宜市| 十堰市| 定远县|