第一篇:云南大學(xué)軟件學(xué)院計(jì)算機(jī)網(wǎng)絡(luò)原理實(shí)驗(yàn)四
實(shí)驗(yàn)
四、web服務(wù)器套接字編程實(shí)驗(yàn)指導(dǎo)
1.實(shí)驗(yàn)?zāi)康模?/p>
編寫一個(gè)WEB服務(wù)器程序,可以接受來自瀏覽器的訪問,并傳輸頁面(包含多個(gè)對象)到瀏覽器。掌握Socket編程。2.實(shí)驗(yàn)環(huán)境:
連入局域網(wǎng)絡(luò)的主機(jī)一臺。3.實(shí)驗(yàn)指導(dǎo):
超文本傳輸協(xié)議(HTTP)是位于TCP/IP 協(xié)議的應(yīng)用層,是最廣為人知的協(xié)議,也是互連網(wǎng)中最核心的協(xié)議之一。HTTP協(xié)議是Web瀏覽器和Web服務(wù)器之間的應(yīng)用層協(xié)議,是通用的、無狀態(tài)的、面向?qū)ο蟮膮f(xié)議。
一個(gè)完整的HTTP協(xié)議會話過程包括四個(gè)步驟:
? 連接
Web瀏覽器與Web服務(wù)器建立連接,打開一個(gè)稱為Socket(套接字)的虛擬文件,此文件的建立標(biāo)志著連接建立成功; ? 請求
Web瀏覽器通過Socket向Web服務(wù)器提交請求。HTTP的請求一般是GET或POST命令(POST用于FORM參數(shù)的傳遞); ? 應(yīng)答
Web瀏覽器提交請求后,通過HTTP協(xié)議傳送給Web服務(wù)器。Web服務(wù)器接到后,進(jìn)行事務(wù)處理,處理結(jié)果又通過HTTP傳回給Web瀏覽器,從而在Web瀏覽器上顯示出所請求的頁面; ? 關(guān)閉連接
應(yīng)答結(jié)束后Web瀏覽器與Web服務(wù)器必須斷開,以保證其它Web瀏覽器能夠與Web服務(wù)器建立連接。
4.實(shí)驗(yàn)分析,回答下列問題。
運(yùn)行課本中Webserver.java程序。查找資料,寫出程序源代碼,并加上必要的注釋。如能改寫該程序,附上修改后的源代碼。附上運(yùn)行的截圖。
代碼及注釋如下:
import java.io.*;//引入Java輸入輸出包 import java.net.*;//引入Java網(wǎng)絡(luò)包 import java.util.*;//導(dǎo)入Java實(shí)用工具庫 class Webserver{ public static void main(String arg[])throws Exception{ String requestMessageLine;String filename;//創(chuàng)建一個(gè)監(jiān)聽socket ServerSocket listenSocket=new ServerSocket(6789);//等待客戶機(jī)發(fā)起連接 while(1==1){
Socket connectionSocket=listenSocket.accept();//創(chuàng)建一個(gè)從socket中讀文本行的流 BufferedReader inFromClient=new
BufferedReader(new InputStreamReader(connectionSocket.getInputStream()));//創(chuàng)建一個(gè)向socket中寫文本行的流 DataOutputStream outToClient=new
DataOutputStream(connectionSocket.getOutputStream());//讀取客戶機(jī)發(fā)送的一行文本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);//輸出字符串,內(nèi)容為客戶端請求的文件名
File file=new File(filename);int numOfBytes=(int)file.length();//新建文件輸入流
FileInputStream inFile=new FileInputStream(filename);byte[] fileInBytes=new byte[numOfBytes];//將文件流信息讀入byte數(shù)組 inFile.read(fileInBytes);// 服務(wù)端輸出信息
outToClient.writeBytes(“HTTP/1.0 200 Document Followsrn”);//不同的文件類型所對應(yīng)的頭文件格式不同
if(filename.endsWith(“.jpg”))
outToClient.writeBytes(“Content-Type:image/jpegrn”);
if(filename.endsWith(“.gif”))
outToClient.writeBytes(“Content-Type:image/gifrn”);outToClient.writeBytes(“Content-Length:”+numOfBytes+“rn”);
outToClient.writeBytes(“rn”);
outToClient.write(fileInBytes,0,numOfBytes);
connectionSocket.close();
} //錯(cuò)誤的請求方式
else System.out.println(“Bad Resquest Message”);} } 實(shí)驗(yàn)結(jié)果截圖如下:
實(shí)驗(yàn)四為JAVA的編程實(shí)驗(yàn),實(shí)驗(yàn)代碼已經(jīng)提供,大家只需要讀懂此程序,運(yùn)行此程序查看結(jié)果,或做稍加修改就可以了??蛻舳说某绦虿挥镁帉?,只需要用瀏覽器做為客戶端程序,向給定的服務(wù)器程序索取網(wǎng)頁就可以了,大家可以事先先下載一個(gè)網(wǎng)頁把它存放在和服務(wù)器程序同一個(gè)文件夾下即可,瀏覽器地址欄輸入按照實(shí)驗(yàn)提示來做:使用WEB瀏覽器來測試WEB服務(wù)器的程序,如果在本機(jī)上測試,本機(jī)服務(wù)器監(jiān)聽端口為6789,要獲得本機(jī)上文件名為index.html,應(yīng)在瀏覽器指定下列URL http://localhost:6789/index.html;如果服務(wù)器程序不在本機(jī)上,服務(wù)器監(jiān)聽端口為6789,要獲得服務(wù)器上文件名為index.html,應(yīng)在瀏覽器指定下列URL http://服務(wù)器IP地址:6789/index.html。檢查瀏覽器中輸入的端口號是否和服務(wù)器監(jiān)聽的端口號一致。不一致要進(jìn)行修改。
四、實(shí)驗(yàn)總結(jié)
總結(jié)你在實(shí)驗(yàn)過程中遇到的問題和解決的方法。
這次實(shí)驗(yàn)做的比較慢,在webserver程序的運(yùn)行上遇到了比較大的困難,由于第一次接觸java,對于java的運(yùn)行并不清楚,一開始就不知道用什么編譯器編譯,在網(wǎng)上查找后,找到了合適的編譯器,之后又出現(xiàn)了編譯錯(cuò)誤的情況,如下圖:
由于無法加載,服務(wù)器程序一直運(yùn)行不成功,后來通過網(wǎng)絡(luò)查找才發(fā)現(xiàn),java程序運(yùn)行前必須進(jìn)行編譯,生成一個(gè)class后綴的文件才行,最終運(yùn)行成功,通過瀏覽器找到預(yù)先的存儲的網(wǎng)頁。
這次實(shí)驗(yàn)比較好的是在jdk的安裝和設(shè)置環(huán)境變量的時(shí)候比較熟練,得益于第一次綜合技能時(shí)間做的比較好,所以這次在配置java環(huán)境是比較順利。
第二篇:云南大學(xué)軟件學(xué)院 實(shí)驗(yàn)8
計(jì)算機(jī)組成原理與匯編元程序設(shè)計(jì)實(shí)驗(yàn)報(bào)告
實(shí)驗(yàn)八 實(shí)驗(yàn)考核:匯編程序綜合設(shè)計(jì)實(shí)驗(yàn)
姓名:學(xué)號:序號:班級:分?jǐn)?shù):
1.編寫程序,實(shí)現(xiàn)表的處理:內(nèi)存單元中有一個(gè)ASCII碼表,編寫程序完成下面的功能:
① 首先輸出表的內(nèi)容;
② 插入一個(gè)數(shù)據(jù),插入的數(shù)據(jù)和插入的位置從鍵盤輸入;
③ 對表中的數(shù)據(jù)進(jìn)行排序,按升順或降順排序可以進(jìn)行選擇;
④ 在表中查找某一個(gè)關(guān)鍵字,要查找的關(guān)鍵字從鍵盤輸入;如果找到,輸出查找的關(guān)鍵字并給出提示“find”,否則給出提示“no find”;
⑤ 程序執(zhí)行以后,輸出表中的插入以后的內(nèi)容和排序以后的內(nèi)容;
⑥ 程序有友好的運(yùn)行界面;
⑦要求程序能夠處理基本的錯(cuò)誤信息;
2.1)首先首先程序應(yīng)該顯示版權(quán)信息(自己考慮)。
2)其次顯示今天的日期,顯示格式是year:****month:** day:**
3)然后再編寫功能完善運(yùn)算器程序,實(shí)現(xiàn)四則運(yùn)算及進(jìn)制轉(zhuǎn)換。
要求:提供設(shè)計(jì)報(bào)告。
所有程序要求提供算法,程序框圖,程序測試截圖。重要內(nèi)容要求有解釋!
第三篇:云南大學(xué)軟件學(xué)院大學(xué)物理實(shí)驗(yàn)4
云南大學(xué)軟件學(xué)院 實(shí)驗(yàn)報(bào)告
課程:大學(xué)物理實(shí)驗(yàn)學(xué)期:2011-2012學(xué)年 第一學(xué)期任課教師:王逍班級:星期三學(xué)號:20111120012序號:3姓名:武瓊成績:
實(shí)驗(yàn)4靜電場
問題1:
(1)等量異號點(diǎn)電荷在x負(fù)軸線上的產(chǎn)生的電場強(qiáng)度大小和方向?
(2)pe電偶極矩在x負(fù)軸線上的產(chǎn)生的電場強(qiáng)度大小和方向?
(3)編寫matlab程序,在x取值[-6,+6]范圍內(nèi)畫出點(diǎn)電荷和電偶極子電場強(qiáng)度曲線,同時(shí)畫出電偶極子。(說明:k,Q,L等常量取1,所有曲線畫在同一個(gè)figure中。注意使用axis調(diào)整坐標(biāo)顯示的取值范圍)
(4)對繪制的電場強(qiáng)度曲線進(jìn)行分析說明。如果交換電荷±Q的位置,結(jié)果如何?
問題2:
(1)等量異號點(diǎn)電荷在y負(fù)軸線上的產(chǎn)生的電場強(qiáng)度大小和方向?
(2)pe為電偶極矩在y負(fù)軸線上的產(chǎn)生的電場強(qiáng)度大小和方向?
(3)編寫matlab程序,在y取值[-6,+6]范圍內(nèi)畫出點(diǎn)電荷和電偶極子電場強(qiáng)度曲線。(說明:k,Q,L等常量取1,所有曲線畫在同一個(gè)figure中。注意使用axis調(diào)整坐標(biāo)顯示的取值范圍)
(4)對繪制的電場強(qiáng)度曲線進(jìn)行分析說明。如果交換電荷±Q的位置,結(jié)果如何?
第四篇:云南大學(xué)軟件學(xué)院大學(xué)物理實(shí)驗(yàn)5
云南大學(xué)軟件學(xué)院 實(shí)驗(yàn)報(bào)告
課程:大學(xué)物理實(shí)驗(yàn)學(xué)期:2012-2013學(xué)年 第一學(xué)期任課教師:王逍
班級: 星期三學(xué)號:20111120012序號: 3姓名: 武瓊成績:
實(shí)驗(yàn)5磁場
一、實(shí)驗(yàn)內(nèi)容
1在本實(shí)驗(yàn)中預(yù)設(shè)帶電粒子所帶電荷q與質(zhì)量m之比絕對值為1。實(shí)驗(yàn)程序界面如下圖:任意選定10個(gè)速度,調(diào)整磁感應(yīng)強(qiáng)度值與電場強(qiáng)度值,使帶電粒子的運(yùn)動軌跡為水平直線。
將運(yùn)動軌跡為直線所對應(yīng)的速度、磁感應(yīng)強(qiáng)度、及電場強(qiáng)度數(shù)值填入下表中。
問題:該帶電粒子帶正電荷還是負(fù)電荷?為什么?
帶正電,從實(shí)驗(yàn)已知條件可知,磁場方向垂直于面向里,當(dāng)磁場強(qiáng)度增大時(shí),帶點(diǎn)粒子運(yùn)動軌跡向上傾斜,可知帶點(diǎn)粒子的洛倫茲力向上,用左手定則可知,粒子帶正電。
二、實(shí)驗(yàn)內(nèi)容
21.當(dāng)AC桿以初速度v0向右運(yùn)動時(shí),使用matlab編寫程序,求AC桿運(yùn)動的加速度方程、速度方程和位移方程。
加速度方程:
速度方程:
位移方程:
2.使用matlab編寫程序,繪制AC桿運(yùn)動的速度曲線和位移曲線。
3.分析AC桿能夠移動的最大距離是多少?運(yùn)動時(shí)間是多少?
第五篇:云南大學(xué)軟件學(xué)院數(shù)據(jù)庫實(shí)驗(yàn)3
云南大學(xué)軟件學(xué)院 實(shí)驗(yàn)報(bào)告
課程: 數(shù)據(jù)庫原理與實(shí)用技術(shù)實(shí)驗(yàn)學(xué)期: 2011-2012學(xué)年 第 二 學(xué)期任課教師:專業(yè):學(xué)號:姓名:成績:
實(shí)驗(yàn)3使用SQL語句創(chuàng)建并管理數(shù)據(jù)庫、數(shù)據(jù)表
一、實(shí)驗(yàn)?zāi)康恼莆詹樵兎治銎鞯氖褂梅椒?。掌握T-SQL語句的基本使用。熟練掌握DDL語句。熟練掌握DML(Insert, Delete, Update)語句。
二、實(shí)驗(yàn)內(nèi)容
1、用T-SQL語句創(chuàng)建并管理數(shù)據(jù)庫“Employee數(shù)據(jù)庫”,數(shù)據(jù)庫要求見實(shí)驗(yàn)二。記錄創(chuàng)建數(shù)據(jù)庫的SQL語句。
2、修改數(shù)據(jù)庫:將“Employee數(shù)據(jù)庫”的數(shù)據(jù)庫最大容量更改為無限制(UNLIMITED),然后將“Employee數(shù)據(jù)庫”的日志文件增長方式改為2MB。記錄SQL語句。
3、用T-SQL語句在“Employee數(shù)據(jù)庫”創(chuàng)建數(shù)據(jù)表,數(shù)據(jù)表的結(jié)構(gòu)見實(shí)驗(yàn)二。記錄創(chuàng)建表的SQL
語句。
4、修改表結(jié)構(gòu):將雇員信息表person中,Prof的字段長度改為15。記錄SQL語句。
5、向表中添加記錄,使用Insert Into 語句分別向四張表中添加符合表結(jié)構(gòu)屬性的數(shù)據(jù)記錄,要
求每張表至少4條記錄,并顯示所添加的記錄數(shù)據(jù)。
6、向雇員信息表person中添加記錄
完成如下操作:(1)、修改表中記錄:將“王輝”的部門修改為“003”;
(2)、刪除記錄:刪除表中性別為“女”的員工記錄;
(3)、刪除表:將“person”從“Employee數(shù)據(jù)庫”中刪除。
三、思考題
如數(shù)據(jù)庫表中存在如下記錄:
表person中的數(shù)據(jù)
現(xiàn)執(zhí)行: DELETE FROM department WHERE Depton=“001”,執(zhí)行結(jié)果如何?為什么?