999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

C#實現基于Socket的信息教學系統設計

2019-04-04 01:46:10呂鵬輝張起貴
現代電子技術 2019年2期
關鍵詞:信息技術

呂鵬輝 張起貴

關鍵詞: 信息技術; 教學平臺; Socket; TCP/IP通信; 多線程; 數據交換

中圖分類號: 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年開始,山西省把信息技術的考試(Office,Photoshop,FLASH)納入中學生升學考試科目中,本文在對市場上信息技術教輔產品的充分調研的基礎上,發現各類產品參差不齊,功能上、質量上不能很好地切入教師、學生的學習生活中,單一的做題模式難免會讓教師、學生產生排斥心理[1?2]。

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

1 ?系統總體架構設計

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

2 ?教師服務端總體設計

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

3 ?學生客戶端總體設計

3.1 ?學生客戶端結構

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

3.2 ?自學自測模塊

學生在進入自測界面時可以選擇客觀測試與主觀測試。客觀測試主要為單項選擇題、多項選擇題、判斷題和填空題四類客觀題型。主觀測試包含Microsoft Office(Word,PPT,Excel),Photoshop及FLASH操作題,這里主要討論FLASH操作題的評分算法。在分析了以往對FLASH操作題自動評分的各類方案與算法后發現,以往的評分標準與評分算法存在很多需要改進的地方,比如,在單純應用JSFL(FLASH JavaScript)對FLASH文件進行評分判斷時,只能做到一題對應一個代碼塊。JSFL代碼沒有很好的擴展性,加大了程序員以及使用者的工作量。在考慮到代碼的擴展性與魯棒性的前提下,在應用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作品的各個屬性值與傳出評分結果[13?14]。

3.3 ?課堂互動模塊

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

1) 學生進入登錄界面LoginFrm,輸入對應學生姓名、學號及教師端服務器IP端口號,登入服務器。

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

3) 在進入主界面后可以看到三個子模塊,分別為:課堂作業HomeworkFrm、聯網練習OnlineTest、作品互評MutualWorks。

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

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

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

3.4 ?客服兩端多線程Socket通信的實現

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

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

4 ?系統整體測試分析

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

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

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

在服務器端的主界面點擊“批改作業”可查看學生作業的完成情況,并自動評出分數。在學生端界面點擊“聯網練習”,可看到兩個按鈕:“下載試卷”和“開始答題”,當服務器端導入練習文件并且開啟考試時服務端才可以下載試卷成功并開始答題。服務器端學生考試狀態和客戶端考試界面如圖7、圖8所示。

在學生答完題提交試卷以后,服務器端可以自動評分并且導出成績為xls文件進行存儲。在“作品互評”模塊中,客戶端可以隨意從服務器調取其他客戶端的作品文件進行評價評分并提交至服務器。

5 ?結 ?語

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

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

參考文獻

[1] 曲良東,黃春毅.學生綜合測評助手軟件設計與開發[J].教育教學論壇,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] 陳傳鎮.教學資源文件管理系統的設計與實現[D].哈爾濱:哈爾濱工業大學,2015.

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

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

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

[4] 何誠,邵乾飛,袁浩,等.基于Socket實現Android (java)與C#的同步通信[J].無線互聯科技,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] 王秀民,孫霜青,李春玲,等.理化實驗室管理信息系統的研究與實現[J].實驗技術與管理,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#入門經典[M].喬立波,譯.北京:清華大學出版社,2006.

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

[7] 朱文龍,秦興,戴泓,等.基于Socket的Android聊天系統的設計與實現[J].工業控制計算機,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通信的文件服務系統設計與實現[D].濟南:山東大學,2016.

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

[9] 任子強.基于Microsoft OLE DB方式實現安全隔離網關對數據庫數據的采集[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].出版科學,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] 何立峰.應用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自動測評系統研究[J].浙江海洋學院學報(自然科學版),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作品自動評價技術[J].杭州師范大學學報(自然科學版),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技術的FLASH自動評價中間件設計[J].杭州師范大學學報(自然科學版),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] 張珊珊,邱桃榮,張虹,等.基于多線程的文件推送系統的設計與實現[J].南昌大學學報(工科版),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的網絡文件傳送[J].河南科技大學學報(自然科學版),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的文件傳輸關鍵技術研究與系統實現[D].成都:電子科技大學,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] 韋興柳,鐘誠,李智,等.大數據文件和混合文件的多線程并行下載[J].計算機工程與應用,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.

猜你喜歡
信息技術
新一代信息技術征稿啟示
新一代信息技術征稿啟示
新一代信息技術征稿啟示
新一代信息技術征稿啟示
新一代信息技術征稿啟示
新一代信息技術征稿啟示
新一代信息技術征稿啟示
新一代信息技術征稿啟示
新一代信息技術征稿啟示
新一代信息技術征稿啟示
主站蜘蛛池模板: 亚洲国产天堂久久九九九| 欧美亚洲一区二区三区在线| 国产精品无码一区二区桃花视频| 国产91在线|日本| 色呦呦手机在线精品| 999精品视频在线| 九九香蕉视频| 呦视频在线一区二区三区| 99热亚洲精品6码| 99精品影院| 国产精品亚洲一区二区在线观看| 亚洲综合九九| 国产精品无码翘臀在线看纯欲| 国产日韩欧美黄色片免费观看| 国产综合网站| 91在线精品麻豆欧美在线| 国产精品九九视频| 波多野结衣亚洲一区| 亚洲精品少妇熟女| 国产精品部在线观看| 国产欧美日韩一区二区视频在线| 久久毛片免费基地| 国产夜色视频| 欧美精品在线免费| 伊人五月丁香综合AⅤ| 国产日本一区二区三区| 中文字幕在线视频免费| 亚洲人在线| 在线毛片免费| 波多野结衣一二三| 国产素人在线| 免费人成又黄又爽的视频网站| 国产精品嫩草影院av| 呦系列视频一区二区三区| 精品国产91爱| 在线播放国产一区| 香蕉eeww99国产在线观看| 亚洲视频欧美不卡| 一级做a爰片久久免费| 久久黄色免费电影| 综合五月天网| 色综合久久综合网| 黄色不卡视频| 国产黑丝一区| 亚洲国产成熟视频在线多多| 国产精品久久久精品三级| 真人免费一级毛片一区二区| 中国一级特黄视频| 无码一区中文字幕| 成人字幕网视频在线观看| 亚洲另类色| 在线看片国产| 在线欧美一区| 国产极品粉嫩小泬免费看| 国产资源免费观看| 久久精品国产在热久久2019| 一区二区午夜| 干中文字幕| 欧美日韩久久综合| 久久国产香蕉| 四虎亚洲精品| 国产精品浪潮Av| 四虎永久在线| 天堂在线亚洲| 一区二区三区四区精品视频 | 欧美日韩国产综合视频在线观看| 国产在线观看91精品亚瑟| 91精品人妻一区二区| 国产成人亚洲毛片| 色婷婷在线播放| 国产91蝌蚪窝| 国产屁屁影院| 欧美激情伊人| 十八禁美女裸体网站| 成人精品在线观看| 日本久久免费| 精品国产女同疯狂摩擦2| 国产成人精品日本亚洲| 成人午夜天| 亚洲乱码精品久久久久..| 在线看AV天堂| 国产精品片在线观看手机版|