日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

计算机网络云南大学实验四,云南大学软件学计算机网络原理实验四.doc

發布時間:2025/3/15 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 计算机网络云南大学实验四,云南大学软件学计算机网络原理实验四.doc 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

云南大學軟件學計算機網絡原理實驗四

實驗四、web服務器套接字編程實驗指導

1.實驗目的:

編寫一個WEB服務器程序,可以接受來自瀏覽器的訪問,并傳輸頁面(包含多個對象)到瀏覽器。掌握Socket編程。

2.實驗環境:

連入局域網絡的主機一臺。

3.實驗指導:

超文本傳輸協議(HTTP)是位于TCP/IP 協議的應用層,是最廣為人知的協議,也是互連網中最核心的協議之一。HTTP協議是Web瀏覽器和Web服務器之間的應用層協議,是通用的、無狀態的、面向對象的協議。

一個完整的HTTP協議會話過程包括四個步驟:

連接

Web瀏覽器與Web服務器建立連接,打開一個稱為Socket(套接字)的虛擬文件,此文件的建立標志著連接建立成功;

請求

Web瀏覽器通過Socket向Web服務器提交請求。HTTP的請求一般是GET或POST命令(POST用于FORM參數的傳遞);

應答

Web瀏覽器提交請求后,通過HTTP協議傳送給Web服務器。Web服務器接到后,進行事務處理,處理結果又通過HTTP傳回給Web瀏覽器,從而在Web瀏覽器上顯示出所請求的頁面;

關閉連接

應答結束后Web瀏覽器與Web服務器必須斷開,以保證其它Web瀏覽器能夠與Web服務器建立連接。

4.實驗分析,回答下列問題。

運行課本中Webserver.java程序。查找資料,寫出程序源代碼,并加上必要的注釋。如能改寫該程序,附上修改后的源代碼。附上運行的截圖。

代碼及注釋如下:

import?java.io.*;//引入Java輸入輸出包 import?.*; //引入Java網絡包 import?java.util.*;//導入Java實用工具庫 class?Webserver{public?static?void?main(String?arg[])?throws?Exception{String?requestMessageLine;String?filename;

//創建一個監聽socket ServerSocket?listenSocket=new?ServerSocket(6789);

//等待客戶機發起連接 while(1==1){Socket?connectionSocket=listenSocket.accept();

//創建一個從socket中讀文本行的流 BufferedReader?inFromClient=new?

BufferedReader(new?InputStreamReader(connectionSocket.getInputStream()));

//創建一個向socket中寫文本行的流 DataOutputStream?outToClient=new?

DataOutputStream(connectionSocket.getOutputStream());

//讀取客戶機發送的一行文本requestMessageLine=inFromClient.readLine();

//字段串解析 StringTokenizer?tokenizerLine=new?StringTokenizer(requestMessageLine);

//如果客戶端的請求方式為get方式

if(tokenizerLine.nextToken().equals("GET")){

filename=tokenizerLine.nextToken();

//獲得文件名

if(filename.startsWith("/")==true)

filename=filename.substring(1);

//新建文件

System.out.println("The request filename is:" + filename);

//輸出字符串,內容為客戶端請求的文件名

File file=new File(filename);

int numOfBytes=(int)file.length();

//新建文件輸入流

FileInputStream inFile=new FileInputStream(filename);

byte[] fileInBytes=new byte[numOfBytes];

//將文件流信息讀入byte數組

inFile.read(fileInBytes);

// 服務端輸出信息

outToClient.writeBytes("HTTP/1.0 200 Document Follows\r\n");

//不同的文件類型所對應的頭文件格式不同

if(filename.endsWith(".jpg"))

outToClient.writeBytes

總結

以上是生活随笔為你收集整理的计算机网络云南大学实验四,云南大学软件学计算机网络原理实验四.doc的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。