《web服务器套接字编程实验报告.pdf》由会员分享,可在线阅读,更多相关《web服务器套接字编程实验报告.pdf(4页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、实验四实验四 web web 服务器套接字编程实验报告服务器套接字编程实验报告序号:姓名:学号:成绩一、实验目的一、实验目的编写一个 WEB 服务器程序,可以接受来自浏览器的访问,并传输页面(包含多个对象)到浏览器。掌握 Socket 编程。二、实验环境二、实验环境连入局域网络的主机一台。三、实验指导三、实验指导超文本传输协议(HTTP)是位于 TCP/IP 协议的应用层,是最广为人知的协议,也是互连网中最核心的协议之一。HTTP 协议是 Web浏览器和 Web 服务器之间的应用层协议,是通用的、无状态的、面向对象的协议。一个完整的 HTTP 协议会话过程包括四个步骤:连接Web 浏览器与 W
2、eb 服务器建立连接,打开一个称为 Socket(套接字)的虚拟文件,此文件的建立标志着连接建立成功;请求Web 浏览器通过 Socket 向 Web 服务器提交请求。HTTP 的请求一般是 GET 或 POST 命令(POST 用于 FORM 参数的传递);应答Web 浏览器提交请求后,通过 HTTP 协议传送给 Web 服务器。Web 服务器接到后,进行事务处理,处理结果又通过HTTP 传回给Web 浏览器,从而在 Web 浏览器上显示出所请求的页面;关闭连接应答结束后 Web 浏览器与 Web 服务器必须断开,以保证其它Web 浏览器能够与 Web 服务器建立连接。四、实验分析,回答下列
3、问题四、实验分析,回答下列问题运行课本中 Webserver.java 程序。查找资料,写出程序源代码,并加上必要的注释并加上必要的注释。如能改写该程序,附上修改后的源代码。程序源代码:程序源代码:import java.io.*;import .*;import java.util.*;class Webserverpublic static void main(String arg)throws ExceptionString requestMessageLine;/定义应答信息的类型String filename;/定义文件名的类型ServerSocketlistenSocket=new
4、ServerSocket(3000);/开一个端口为 3000 的 SERVER SOCKETSocket connectionSocket=listenSocket.accept();/接收用户端的 SOCKETBufferedReaderinFromClient=newBufferedReader(newInputStreamReader(connectionSocket.getInputStream();/用BufferedReader 读取客户端传过来的信息DataOutputStreamoutToClient=newDataOutputStream(connectionSocket.
5、getOutputStream();/数据输出流,输出到客户端requestMessageLine=inFromClient.readLine();/读客户端传来的字符串StringTokenizertokenizerLine=newStringTokenizer(requestMessageLine);/类型转换调用函数,转换应答信息if(tokenizerLine.nextToken().equals(GET)filename=tokenizerLine.nextToken();if(filename.startsWith(/)=true)filename=filename.substri
6、ng(1);File file=new File(filename);int numOfBytes=(int)file.length();FileInputStreaminFile=newFileInputStream(filename);byte fileInBytes=new bytenumOfBytes;inFile.read(fileInBytes);/读出数据段的字节数outToClient.writeBytes(HTTP/1.0200DocumentFollowsrn);if(filename.endsWith(.jpg)/判断文件的类型是否是 jpg 类型outToClient.
7、writeBytes(Content-Type:image/jpegrn);if(filename.endsWith(.gif)/判断文件的类型是否是 jpg 类型outToClient.writeBytes(Content-Type:image/gifrn);outToClient.writeBytes(Content-Length:+numOfBytes+rn);outToClient.writeBytes(rn);outToClient.write(fileInBytes,0,numOfBytes);connectionSocket.close();/关闭连接else System.ou
8、t.println(Bad Resquest Message);/服务器没有返回请求应答信息提示:提示:使用 WEB 浏览器来测试 WEB 服务器的程序,如果在本机上测试,本机服务器监听端口为 3000,要获得本机上 文件名为index.html,应在浏览器指定下列 URLhttp:/localhost:3000/index.htm。程序运行后截图:程序运行后截图:四、实验总结四、实验总结(总结你在实验过程中遇到的问题和解决的方法。)在这次实验中遇到的最大问题是对 JAVA 语言编程不太了解,基本上看不懂 Webserver.java程序,不能正确使用 JAVA 的编程环境。但是,在同学的讲解和自己查阅资料后基本上了解了这个程序的目的和内容,并且能够在 JAVA 的编程环境下运行 Webserver.java程序。在这次还遇到的问题就是网页的存储格式问题,首先按照实验指导的要求将 Google 的主页存储为 index.html 文件,在实验过程中始终不能访问到这个网页,后来在同学的指点下,将该文件名改为index.htm,然后再访问该网页时得到了上面截图所显示的结果。