计算机网络云南大学实验四,云南大学软件学计算机网络原理实验四.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相关推荐
- 计算机网络课件第三章,南京邮电大学计算机网络第三章习题.ppt
文档介绍: 题3-25:在上题中的站点A和B在t=0时同时发送了数据帧.当t=225比特时间,A和B同时检测到发生了碰撞,并且在t=255+48=273比特时间完成了干扰信号的传输.A和B在CSMA/ ...
- 编译原理上机实习c语言小子集编译程序的实现报告,合肥工业大学编译原理实验报告(完整代码版)...
<合肥工业大学编译原理实验报告(完整代码版)>由会员分享,可在线阅读,更多相关<合肥工业大学编译原理实验报告(完整代码版)(58页珍藏版)>请在人人文库网上搜索. 1.计算机与 ...
- 大连理工大学计算机原理实验交通灯,大连理工大学计算机原理第四次实验.docx...
文档介绍: 大连理工大学本科实验报告课程名称:计算机原理实验学院(系):信息与通信工程学院专业:通信工程班级:电通1402学号:201483051学生姓名:糜智华2016年12月19日实验(四)名称: ...
- 计算机组成原理实验报告十,合肥工业大学计算机组成原理实验报告.doc
合肥工业大学计算机组成原理实验报告.doc (27页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 14.90 积分 实验一 基本运算器实验一.实验目的了 ...
- 南京邮电大学c语言实验报告4,南京邮电大学算法设计实验报告——动态规划法...
<南京邮电大学算法设计实验报告--动态规划法>由会员分享,可在线阅读,更多相关<南京邮电大学算法设计实验报告--动态规划法(12页珍藏版)>请在人人文库网上搜索. 1.实 验 ...
- 通信原理实验c语言,基于LabVIEW软件的通信原理实验教学平台设计方案
1.引言本文引用地址:http://www.eepw.com.cn/article/201809/388499.htm <通信原理>课程是我校通信工程专业.电子信息工程专业的一门专业基础课 ...
- 编译实验 lr c语言代码,编译原理-实验5-LR(1)分析法
<编译原理-实验5-LR(1)分析法>由会员分享,可在线阅读,更多相关<编译原理-实验5-LR(1)分析法(6页珍藏版)>请在人人文库网上搜索. 1.编译原理实验报告项目名称 ...
- 微型计算机实验考试答案,华中科技大学微机原理实验考试题库与答案.doc
华中科技大学微机原理实验考试题库与答案 复习题(后面附有全部代码) 1.用74LS244设计一个输入接口.从输入端口读入开关状态(高表示'1',低表示'0'),以十进制形式在CRT显示器上显示输入结果 ...
- 大专生学计算机网络好还是数控好,我是学计算机网络的专科生,我要自考本科?数学太差了,请问怎么才能考过?...
问: 我是职业高中毕业的.如果我想参加自学自考学计算机网络安全那一类的专业.要怎么办 答: 第一点.教材自考书店.大的新华书店都有的卖.还有就是报名时定购教材(推荐). 第二点.自考没有学几年之说.考 ...
最新文章
- oracle 创建用户、授权、表空间
- 十年Java编程开发生涯,java计算时间差毫秒
- 计算机视觉——百度百科
- Windows环境下JDK安装与环境变量配置
- dm7数据库单机安装步骤
- 网页制作大作业HTML+CSS制作静态网页----原神
- 生命中,很多事是事在人为
- OpenGL GLM环境配置
- 「MacTeX 小笔记」准备篇
- abaqus .cae文件默认程序设置
- html页面插入百度谷歌地图的方法
- Windows访问共享文件报错:请检查名称拼写。否则,网络可能有问题
- DroidPlugin插件框架 - 《Android必备技能》
- 《如何五分钟创建自己的新币token 》Dapp开发 Web3+以太坊+智能合约开发 (一)
- kali官方ios下载今天刚刚下载的
- UDP组播开发测试实例
- oracle10r2的新特性
- HR面试题(史上最全、持续更新、吐血推荐)
- 详解pdfFactory的页面管理功能
- elementUI 表格属性 匹配 数据字典数据
热门文章
- win7系统设置开机自动联网的方法
- 防止重复提交js jquery ajax
- Mybatis 插入时获取主键的方式
- 学习Spring Boot:(三)配置文件
- 天文学专业在什么时候学计算机,南京大学在985排名第几?南京大学最牛的专业是天文系吗?...
- linux查询.gz日志,linux2-查日志
- LeetCode算法入门- Valid Parentheses -day11
- python求出五位数的回文数_python之递归
- python自动化输入不了中文_appium+python自动化61-中文输入乱码问题解决
- 做计算机工作的要专用手机吗,怎么在手机上完成工作?原来没有电脑手机还可以这样用...