云南大學軟件學院計算機網(wǎng)絡原理實驗四_第1頁
云南大學軟件學院計算機網(wǎng)絡原理實驗四_第2頁
云南大學軟件學院計算機網(wǎng)絡原理實驗四_第3頁
云南大學軟件學院計算機網(wǎng)絡原理實驗四_第4頁
全文預覽已結(jié)束

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領

文檔簡介

1、文檔來源為:從網(wǎng)絡收集整理.word版本可編輯.歡迎下載支持文檔來源為 :從網(wǎng)絡收集整理 .word 版本可編輯 .歡迎下載支持 .實驗四、web服務器套接字編程實驗指導1實驗目的:編寫一個 WEB 服務器程序,可以接受來自瀏覽器的訪問,并傳輸頁面(包含多個對象 )到瀏覽器。掌握 Socket 編程。2實驗環(huán)境: 連入局域網(wǎng)絡的主機一臺。3實驗指導:超文本傳輸協(xié)議(HTTP是位于TCP/IP協(xié)議的應用層,是最廣為人知的協(xié)議,也是互 連網(wǎng)中最核心的協(xié)議之一。HTTP協(xié)議是Web瀏覽器和Web服務器之間的應用層協(xié)議,是通用的、無狀態(tài)的、面向?qū)ο蟮膮f(xié)議。一個完整的HTTP協(xié)議會話過程包括四個步驟:連

2、接Web瀏覽器與Web服務器建立連接,打開一個稱為 Socket (套接字)的虛擬文件, 此文件的建立標志著連接建立成功;請求Web瀏覽器通過 Socket向Web服務器提交請求。HTTP的請求一般是 GET或POST命令(POST用于 FORM參數(shù)的傳遞); 應答Web瀏覽器提交請求后, 通過HTTP協(xié)議傳送給 Web服務器。Web服務器接到后,進 行事務處理,處理結(jié)果又通過 HTTP傳回給 Web瀏覽器,從而在 Web瀏覽器上顯示出所 請求的頁面;關(guān)閉連接 應答結(jié)束后Web瀏覽器與Web服務器必須斷開,以保證其它Web瀏覽器能夠與Web 服務器建立連接。4實驗分析,回答下列問題。運行課本中

3、 Webserver.java 程序。查找資料,寫出程序源代碼, 并加上必要的注釋 。如 能改寫該程序,附上修改后的源代碼。附上運行的截圖。代碼及注釋如下:importjava.io.*;/import.*; /importjava.util.*;/classWebserver引入 Java 輸入輸出包 引入 Java 網(wǎng)絡包 導入 Java 實用工具庫public staticvoid main(String arg)throws ExceptionString requestMessageLine;String filename;/ 創(chuàng)建一個監(jiān)聽 socketServerSocket li

4、stenSocket=new ServerSocket(6789); / 等待客戶機發(fā)起連接while(1=1)Socket connectionSocket=listenSocket.accept();/ 創(chuàng)建一個從 socket 中讀文本行的流BufferedReader inFromClient=newBufferedReader(new InputStreamReader(connectionSocket.getInputStream ();/ 創(chuàng)建一個向 socket 中寫文本行的流DataOutputStream outToClient=new DataOutputStream(c

5、onnectionSocket.getOutputStream();/ 讀取客戶機發(fā)送的一行文本 requestMessageLine=inFromClient.readLine();/ 字段串解析StringTokenizer tokenizerLine=new StringTokenizer(requestMessageLin e);/ 如果客戶端的請求方式為 get 方式 if(tokenizerLine.nextToken().equals(GET) filename=tokenizerLine.nextToken();/ 獲得文件名if(filename.startsWith(/)=

6、true) filename=filename.substring(1);/ 新建文件System.out.println(The request filename is: + filename);/ 輸出字符串,內(nèi)容為客戶端請求的文件名File file=new File(filename);int numOfBytes=(int)file.length();/ 新建文件輸入流FileInputStream inFile=new FileInputStream(filename);byte fileInBytes=new bytenumOfBytes;/ 將文件流信息讀入 byte 數(shù)組 i

7、nFile.read(fileInBytes);/ 服務端輸出信息 outToClient.writeBytes(HTTP/1.0 200 Document Followsrn);/ 不同的文件類型所對應的頭文件格式不同 if(filename.endsWith(.jpg) outToClient.writeBytes(Content-Type:image/jpegrn); if(filename.endsWith(.gif) outToClient.writeBytes(Content-Type:image/gifrn);outToClient.writeBytes(Content-Leng

8、th:+numOfBytes+rn); outToClient.writeBytes(rn); outToClient.write(fileInBytes,0,numOfBytes); connectionSocket.close();/ 錯誤的請求方式else System.out.println(Bad Resquest Message);實驗結(jié)果截圖如下::. lQCdlhCSt(j/iJy I: .Jr- I6凹 護耳 ;_上 &三應 號遼-_看JZ綾 20131120292數(shù)字媒徉技術(shù)實驗四為JAVA的編程實驗,實驗代碼已經(jīng)提供,大家只需要讀懂此程序,運行此程序查看 結(jié)果,或做稍加修

9、改就可以了??蛻舳说某绦虿挥镁帉懀恍枰脼g覽器做為客戶端程序, 向給定的服務器程序索取網(wǎng)頁就可以了,大家可以事先先下載一個網(wǎng)頁把它存放在和服務器程序同一個文件夾下即可,瀏覽器地址欄輸入按照實驗提示來做:使用 WEB瀏覽器來測試WEB服務器的程序,如果在本機上測試,本機服務器監(jiān)聽端口為6789,要獲得本機上文件名為index.html,應在瀏覽器指定下列URL http:/localhost:6789/index.html ;如果服務器程序不在本機上,服務器監(jiān)聽端口為 6789,要獲得服務器上文件名為index.html, 應在瀏覽器指定下列 URL http:/服務器IP地址:6789/index.html。檢查瀏覽器中輸入的端 口號是否和服務器監(jiān)聽的端口號一致。不一致要進行修改。四、實驗總結(jié)總結(jié)你在實驗過程中遇到的問題和解決的方法。這次實驗做的比較慢,在 webserver程序的運行上遇到了比較大的困難,由于 第一次接觸java,對于java的運行并不清楚,一開始就不知道用什么編譯器編 譯,在網(wǎng)上查找后,找到了合適的編譯器,之后又出現(xiàn)了編譯錯誤的情況,如下 圖:3由于無法加載,服務器程序一直運行不

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論