


版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
基于Java的網上考試系統(tǒng)設計與開發(fā),軟件工程論文針對網絡數據傳輸標準協(xié)議TCP/IP的關鍵技術進行了分析,提出了一種在閱讀器/服務器形式下,基于Socket套接字運行機制的網絡應用程序開發(fā)方式方法,并利用Java語言作為開發(fā)工具,通過實例加以詳細實現(xiàn)。本文關鍵詞語:javasocket網絡考試模擬系統(tǒng)DevelopmentoftheNetworkExamSystemBasedonJavaAbstractAbstract:Thispaperanalysesthekeytechno;ogyoftheTCP/IPprotocolinthenetworkdatatransmission.AndpresentsanetworkapplicationdevelopmentmethodbasedontheB/SmodelandtheSocketrunningmechanism.Attheend,thismethodisexemplifiedbyusingtheJavaLanguageasdevelopmenttools.Keywords:JAVAsocketnetworkexammocksystem目錄第一章引言1.1背景1.2課題目的第二章系統(tǒng)開發(fā)平臺介紹2.1TCP/lP協(xié)議2.2B/S模式第三章系統(tǒng)的分析3.1Socket運行機制3.2Java中的Soeket類第四章系統(tǒng)的總體功能設計4.1系統(tǒng)構造與功能第五章主模塊的實現(xiàn)經過5.1服務器端實當代碼5.2客戶機端實當代碼結束語以下為參考文獻致謝第一章引言1.1背景在網絡技術逐步滲入社會生活各個層面的今天,傳統(tǒng)的考試方式也面臨著變革,而網絡考試則是一個很重要的方向。基于Web技術的網絡考試系統(tǒng)能夠借助于遍布全球的Internet進行,因而考試既能夠在本地進行,可以以在異地進行,大大拓展了考試的靈敏性。試卷能夠根據題庫中的內容即時生成,可避免考試前的壓題;而且能夠采用大量標準化試題,進而使用計算機閱卷,大大提高閱卷效率;還能夠直接把成績送到數據庫中,進行統(tǒng)計、排序等操作。所以如今較好的考試方式方法為網絡考試,試題內容放在服務器上,考生通過姓名、準考證號碼和口令進行登錄,考試答案:也存放在服務器中,這樣考試的公平性、答案:的安全性能夠得到有效的保證。因而,采用網絡考試方式將是以后考試發(fā)展的趨勢。1.2課題目的隨著計算機應用的普及和網絡技術的發(fā)展,網絡考試這種新的考試形式已越來越遭到人們的青睞。網絡考試徹底摒棄了傳統(tǒng)考試冗雜的處理流程,無論應試者身處何地,只要能獲取考試登錄地址和賬號,便可在線測試,整個考試經過快速、方便、準確.Java語言是一種當前廣為流行的網絡編程語言,它具有面向對象、平臺獨立、多線程等特點,非常適宜在網絡環(huán)境下開發(fā)應用程序,十分是Java提供的Socket套接字技術的引人,使網絡應用程序開發(fā)時不必考慮網絡底層代碼設計,大大簡化了原有的網絡操作經過。本文就是利用Socket完成了網絡考試模擬系統(tǒng)核心部分的代碼實現(xiàn)。第二章系統(tǒng)開發(fā)平臺介紹2.1TCP/lP協(xié)議TCP/IP協(xié)議一種能使存在于網絡中不同平臺上的主機間進行數據傳箱的標準約定.TCP/IP是一組協(xié)議群,其核心為TCP傳愉層協(xié)議和IP網絡層協(xié)議.當網絡中兩臺主機需要進行數據傳愉時,TCP協(xié)議首先建立起一條穩(wěn)定的連接通道,位于兩端的主機利用這條通道來傳輸數據.TCP協(xié)議提供了用于流量控制和擁塞處理的機制,保證了數據傳輸的安全性和可靠性,合適可靠性要求較高的網絡應用程序的開發(fā)2.2B/S形式傳統(tǒng)的C/S(客戶機/服務器)形式采用請求一回應式進行網絡數據的傳愉,華而不實,提出請求的一端為客,提供回應服務的另一端為服務器.客戶機是主動方,向服務器發(fā)出連接請求;服務器是被動方,一直處于監(jiān)態(tài),等待被來自客戶機的請求服務所觸發(fā)并做出響應客戶機能夠對應多個服務器進程,一個服務器進程也對應多個客戶機B/S(閱讀器/服務器)摸式是對C/S的擴大,客戶機不直接與服務器的應用程序操作,而是網絡閱讀器與服務器應用程序進行數據傳輸.在B/S下開發(fā)的網絡應用程序具有C/S無法比較的優(yōu)越性,B/S中,采用閱讀器作為用戶與系統(tǒng)交互的界面,瀏支持TCP/IP協(xié)議,解決了異構系統(tǒng)的連接問題在B/S,不限制訪問系統(tǒng)的用戶數,具有良好的開發(fā)性;在B/,閱讀器界面統(tǒng)一、直觀而易于便用。第三章系統(tǒng)的分析3.1Socket運行機制TCP/IP協(xié)議不是一種應用程序,它不提供直接的用服務,是通過中間件Socket來實現(xiàn)的.Socket指套接字.一種網絡進程間的通信機制,它由兩部分組成,即IP地和端口號.IP地址用于確定應用程序所在主機的網絡地,一般由四個8位的二進制數字組成,每個數字的范圍在.O到255之間,中間以小數點分隔,如:127.0.01為本地主機IP地址.端口號可用于區(qū)分不同的服務進程,如:HTTP服務端口號為80,F(xiàn)TP服務端口號為21,一般l一1024為系統(tǒng)保存的端口號.基于TCP/lP協(xié)議的Socket根據四個步驟運行:建立Socket、開創(chuàng)建立連接到Socket的輸入流和輸出流、根據指定協(xié)議對Socket進行讀寫操作、關閉Sooet網絡中數據傳輸開場前,套接字Socket首先在服務器建立Socket對象,并在指定端口上進行監(jiān)聽,當接收到來自某一客戶的連接請求時,由Socket為兩端建立一條可靠的專用虛擬傳輸通道,以及用于數據讀寫操作的輸人流和輸出流,當數據傳輸結束后拆除Socket連接通道.Socket獨特而便捷的運行機制使得網絡間位于不同地域、不同機型上的主機能進行資源分享,是一種非常有效的網絡應用程序接口。3.2Java中的Soeket類Java語言提供了大量與網絡操作有關的類,大多存放在包中,華而不實,以Soeket類與Serversoeket類最為有用Socket類實現(xiàn)了客戶機套接字(.簡稱套接字),牽涉的主要方式方法有:建立套接字,連接到指定名稱主機(host)的指定端口(port),建立套接字,連接到指定IP地址(address)的指定端口(port),返回從套接字讀人數據的輸人流,返回向套接字進行寫數據操作的輸出流,關閉套接字.Server-Socket類實現(xiàn)了服務器套接字,牽涉的主要方式方法有:建立服務器套接字,未綁定端口,建立服務器套接字,綁定在指定端口(port),監(jiān)聽來自客戶機的連接請求,方式方法阻塞,直到連接成功,關閉服務器套接字。第四章系統(tǒng)的總體功能設計4.1系統(tǒng)構造與功能網絡考試模擬系統(tǒng)采用B/S形式,應試者在客戶機端閱讀器地址欄中輸人服務器的IP地址,客戶機通過下載的Java應用程序與服務器建立Socket連接,然后調出存放在服務器上的試題.應試者進人考試系統(tǒng)后,按系統(tǒng)講明完成試題的解答,并可隨時提交答案:,查看當下得分及提示正確答案:.服務器中存放著系統(tǒng)開發(fā)所需的所有字節(jié)碼文件和試題文件.該系統(tǒng)主要提供的功能有:1)連接服務輸人服務器IP地址等待與服務器相連接,若系統(tǒng)連接成功,顯示提取試題界面;若連接不成功,提示連接失敗.2)提取試題選擇模擬試題套數,中選中某套試題后,將每道試題依次顯示在試題區(qū)域中.3)答題選項應試者在試卷的解答經過中,能夠進行繼續(xù)答題-提交答案:查看成績退出考試這樣四個步驟.4)計時提示根據考試規(guī)定時間,在答題經過中提示倒計時間,以提醒應試者注意時間限制。第五章主模塊的實現(xiàn)經過5.1服務器端實當代碼利用Java語言提供的多線程來實現(xiàn)每個應試者(客戶機)的服務請求.服務器在無連接請求到來時,一直處于等待狀態(tài),并隨時準備為多個客戶機提供服務.當某一客戶機向服務器發(fā)出連接請求時,服務器主線程立即建立一個新的套接字連接,同時產生一個子線程來處理該客戶機的請求,當服務器啟動完子線程后馬上又回到監(jiān)聽狀態(tài),等待下一個客戶機的連接請求.下面為核心代碼段如此圖:publicClassServer//服務器主類〔publicstaticvoidmain(Stringargsl){while(true){//循環(huán)監(jiān)聽try{sersoe=newServerSoeket(6568):}//開創(chuàng)建立服務器套接字,綁定端口catch(IOExceptione){}try{soc=sersoc.accept();//監(jiān)聽到來自客戶機端的連接請求InetAddressaddress=soc.getlnetAddress();//獲取客戶機端的IP地址System.out.println(客戶機端的IP:+address):)eateh(IOExceptione){}if(soe!=null){newServerthread(soc).start();}//啟動子線程else{continue;}}}}ClassServerthreadextendsThread//服務器子線程{Serverthread(Soekett){soeket=t:try{in=newDatalnputStream(soeke..getlnPutStream());//開創(chuàng)建立輸人流out=newDataOutputStream(soeket.getOutputStream());//開創(chuàng)建立輸出流eateh(IOExceptione){}}Publicvoidrun(){while(true){try{s=in.readUTF()從客戶機端讀人數據...if(s.Startswith(繼續(xù)))//若客戶機端選擇繼續(xù)按鈕outwriteUTF(試題內容:+eontent-Test);//試題內容從服務器端傳到客戶機端out.writeUTF(考試用時:+time);//考試用時從服務器端傳到客戶機端if(timeend())//若超時{out.writeUTF(考試結束:);}//考試結束...}Elseif(sstartsWith(提交))//若客戶機端選擇提交按鈕{...讀取試題.setseleetion(answer)提取答案:}Elseif(s.startsWith(查分))//若客戶機端選擇查分按鈕seore=讀取試題.getScore();//提獲得分message=讀取試題.getMessages();//提取正確答案:out.writeUTF(您的得分為:+seore+\n十messages);//得分、答案:從服務器傳到客戶機端}}cateh(IOExceptione){try{soeket.close();}//關閉套接字cateh(Exceptione){}System.out.println(客戶離開了);//當下客戶機端完成考試break;}}}}5.2客戶機端實當代碼通過開創(chuàng)建立Socket與服務器建立連接.當連接成功時,生成考試界面,等待應試者答題.PublicclassClientextendsAppletimplementsAction-Listener//客戶機主類(...try{soeket=newSoeket(this.getCodeBase().getH-ost(),6868):/開創(chuàng)建立套接字,綁定端口in=newDatalnputStream(soeket.getlnputstream());//開創(chuàng)建立輸人流out=newDataOutputStream(soeket.getOutputStream());}//開創(chuàng)建立輸出流catch(IOExceptioneee){提示條.setText(服務器連接失敗);}//服務器未連接上if(soeket!=null)//服務器連接成功{提示條.setText(服務器連接成功!);選擇試題界面.setVisible(true);//生成選擇試題界面...)PublicvoidactionPerformed(ActionEvente){if(e.getSource()==開場考試)//選擇開場考試按鈕{if(選擇試題界面.getSuccess())//若試題生成{考試界面.setSocketConnection(soeket,in,out);//生成考試界面考試界面.setVisible(true);)}Elseif(e.getSouree()==退出考試)//選擇退出考試按鈕{try{soeket..close();}//關閉套接字Cateh(IOExceptione){}System.exit(o):}//退出系統(tǒng)}}.結束語Socket套接字運行機制不但是TCP/IP協(xié)議與應用聯(lián)絡的中間件,同時也是Java語言提供的網絡應用程口(API
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025安全員-B證(項目經理)考試題庫
- 2024年外轉子風機項目資金籌措計劃書代可行性研究報告
- 2024年TC-22型氧化鋅脫硫劑項目資金需求報告
- 數學-云南省三校2025屆高三2月高考備考聯(lián)考卷(六)試題和答案
- 2025年度文化事業(yè)單位正規(guī)勞務派遣合作協(xié)議書
- 2025年度專業(yè)化學品倉庫庫房租賃及安全管理協(xié)議
- 二零二五年度員工股權激勵與公司可持續(xù)發(fā)展合同
- 2025年度房地產戰(zhàn)略合作協(xié)議書:房地產項目綠色建筑設計與綠色施工技術合同
- 2025年度臨時用工合同協(xié)議書:文化演出臨時演出人員及技術人員協(xié)議
- 2025年度網絡安全責任忠誠協(xié)議范本
- 2025年春期六年級班主任工作計劃
- 2024年山東力明科技職業(yè)學院高職單招數學歷年參考題庫含答案解析
- 廣州市小學六年級上英語單詞
- 武漢市2024-2025學年度高三元月調考歷史試題卷(含答案)
- 《慢性腎臟病相關心肌病綜合管理中國專家共識(2024版)》解讀
- DCMM解析版練習試題附答案
- 《工程建設質量信得過班組建設活動準則》
- 金融企業(yè)會計第八章證券公司業(yè)務的核算
- 2025新外研社版英語七年級下單詞默寫表
- 2024下半年上海事業(yè)單位招考易考易錯模擬試題(共500題)試卷后附參考答案
- 網絡安全風險評估行業(yè)研究報告
評論
0/150
提交評論