计算机网络云南大学实验四,云南大学软件学计算机网络原理实验四.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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/565205.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Spring Boot EasyPoi导出Excel下载

Java关于excel的操作 Java Excel俗称jxl,可以读取Excel文件的内容、创建新的Excel文件、更新已经存在的Excel文件,现在基本没有更新了 Apache POI是Apache基金组织Jakarta项目的子项目,它包括一系列的API,可以操作多种格式的Mic…

2021年华中杯A题(马赛克瓷砖选色问题)详细分析

目录 一、基本介绍 1.1 题目描述 1.2 待解决问题 二、问题分析与求解 2.1 问题一分析与求解 2.2 问题二分析与求解 2.3 问题三分析与求解 三、完整代码 四、总结 一、基本介绍 1.1 题目描述 马赛克瓷砖是一种尺寸较小(常见规格为边长不超过 5cm&#xff09…

计算机无法连接无线信号,win7系统连接无线信号时提示Windows无法连接到路由器名称的四种解决方法...

现如今网络发展速度非常快,无线网络已经普及了,使用率高了遇到的问题也就多了。比如有时候笔记本win7系统连接无线信号时出现“Windows无法连接到路由器名称”(如下图所示),该如何解决此问题呢?下面脚本之家的小编介绍几种解决方法…

Spring Boot 注解定时任务

注解 Scheduled(cron “0/5 * * * * ?”) 相当于原来的xml版本的如下配置 <task:scheduled ref"scheduledTask" method"getTask1" cron"0/5 * * * * ?" />定时任务类ScheduledTask package com.jege.spring.boot.task;import java.t…

数据采集与清洗基础习题(四)Pandas初体验,头歌参考答案

数据采集习题参考答案&#xff0c;会持续更新&#xff0c;点个关注防丢失。 创作不易&#xff0c;一键三连给博主一个支持呗。 为了方便查找&#xff0c;已按照头歌重新排版&#xff0c;朋友们按照头歌所属门类查找实训哦&#xff0c;该篇为Pandas。 文章目录 实训一&#…

职称计算机考试word2003真题,职称计算机考试《Word2003》历年真题回顾(1)

11、在Word2000编辑状态打开了一个文档&#xff0c;对文档没有作任何修改&#xff0c;随后执行“文件”菜单中的“退出”命令&#xff0c;则错误的叙述有( A C D )A、仅文档窗口被关 B、文档和Word2000主窗口全被关闭C、仅Word2000主窗口全被关闭 D、文档和Word2000主窗口全未被…

Spring Boot 动态修改定时任务cron参数

动态修改定时任务cron参数 不需要重启应用就可以动态的改变Cron表达式的值不能使用Scheduled(cron "${jobs.cron}")实现动态定时任务类DynamicScheduledTask package com.jege.spring.boot.task;import java.text.SimpleDateFormat; import java.util.Date;import …

全国计算机准考证打印2015年,甘肃2015下半年全国计算机等级考试准考证打印时间...

甘肃2015下半年全国计算机等级考试准考证打印时间一、打印准考证考生可在考前2周之内登陆全省统一报名网站自主打印准考证&#xff0c;或到考点现场领取准考证。二、考试时间下半年&#xff1a;2015年9月19日至21日&#xff0c;分批进行。考试具体时间、地点均以“准考证”为准…

TOPSIS与模糊Borda 的组合应用(以第二届大湾区杯和国赛为案例)

目录 一、TOPSIS&#xff08;优劣解距离法&#xff09;简介 二、TOPSIS&#xff08;优劣解距离法&#xff09;主要步骤 &#xff08;1&#xff09;数据进行标准化 &#xff08;2&#xff09;构建决策矩阵 &#xff08;3&#xff09;构造加权规范阵 &#xff08;4&#xf…

Spring Boot 页面国际化

internationalization详解 国际化&#xff08;internationalization&#xff09;是设计和制造容易适应不同区域要求的产品的一种方式。它要求从产品中抽离所有地域语言&#xff0c;国家/地区和文化相关的元素。换言之&#xff0c;应用程序的功能和代码设计考虑在不同地区运行的…

唯美计算机语言,唯美精辟的语句

1、当泪水一滴滴的掉落在我的手上&#xff0c;那时竟想为何我非你不可&#xff01;2、原来再美好的承诺&#xff0c;最终还是会被现实打败。3、明明不是陌生人&#xff0c;却装的&#xff0c;比陌生人&#xff0c;还要陌生。4、如果我是个瘦子&#xff0c;伤心时我还可以数数排…

不到30的成本,还不赶紧造起来——盘点软著申请小知识

今年上半年的时候跟着老师做项目&#xff0c;为了学习应付中期报告&#xff0c;就自己写了一个小软件&#xff0c;然后申请了一个软著&#xff0c;至于为啥要头铁的自己上呢&#xff0c;因为想要拿独立著作权&#xff0c;那当然是没有报销的啦~&#xff0c;这里有同学就要问啦&…

C/C++ 文件的后缀名

为什么要对C/C 文件的后缀名进行介绍的呢&#xff1f; C和C并不是同一种编程语言&#xff0c;如果你使用了C中的相关代码片段而后缀名保存为了C文件的后缀名是无法运行的即是一个错误的程序&#xff0c;所以我们要对相应的代码保存为相应后缀名的文件。 下面跟我一起来看一下…

Linux系统安装及配置——Centos-7-X86_64-DVD-2009

目录 1.下载 VMware Workstation软件 2.下载 Centos-7-X86_64-DVD-2009.iso 3.安装并配置 3.1打开VMware Workstation&#xff0c;选择创建新的虚拟机 3.2选择自定义&#xff0c;然后下一步 3.3下一步 3.4选择稍后安装操作系统&#xff0c;然后下一步 3.5选择Linux&am…

opcenum在计算机服务找不到,OPC DCOM 问题处理

摘要&#xff1a;OPC DCOM 问题处理 Troubleshooting DCOM 文档类型 (User Guide) Edition (2008 年 12 月) https://support.industry.siemens.com/cs/cn/zh/view/109481341 摘 要 本文档介绍如何解决 OPC 通讯中的 DCOM 的问题 关键词 OPC DCOM Key Words OPC DCOM IA&DT…

2018年12月份计算机,CPU天梯图2018年12月最新版 十二月台式电脑CPU性能排行

Helio&#xff0c;大家好&#xff0c;11月再见12月你好&#xff01;欢迎关注IT数码通带来的最新一期桌面CPU天梯图。距离上一次天梯图更新已经过去一个月时间了&#xff0c;伴随着12月份到来&#xff0c;新的天梯图需要进行更新和完善了。接下来“IT数码通”小编为大家带来了CP…

C语言程序的错误和警告

一段C语言代码&#xff0c;在编译、链接和运行的各个阶段都可能会出现问题。编译器只能检查编译和链接阶段出现的问题&#xff0c;而可执行程序已经脱离了编译器&#xff0c;运行阶段出现问题编译器是无能为力的。 如果我们编写的代码正确&#xff0c;运行时会提示没有错误&am…

计算机的集成显卡是什么意思,IGD、PEG、PCI的含义,我的电脑是集成显卡该选哪一项...

请详细介绍IGD&#xff0c;PEG&#xff0c;PCI的含义&#xff0c;我应该为计算机的集成显卡选择其中的一种。 ...请详细说明IGD&#xff0c;PEG&#xff0c;PCI的含义&#xff0c;如果我的计算机是集成显卡&#xff0c;则应该选择IGD&#xff0c;PEG&#xff0c;PCI的含义。展开…

Spring Boot 数据国际化

internationalization详解 国际化&#xff08;internationalization&#xff09;是设计和制造容易适应不同区域要求的产品的一种方式。它要求从产品中抽离所有地域语言&#xff0c;国家/地区和文化相关的元素。换言之&#xff0c;应用程序的功能和代码设计考虑在不同地区运行的…

计算机二维动画的核心技术是什么意思,数字化技术在二维动画设计中的应用研究...

摘要&#xff1a;动画是艺术与技术的整合,动画的艺术性需要技术的支撑,技术需要艺术来呈现,动画技术的发展使动画导演和设计师完成作品的速度得到提高,艺术的表现效果上也越来越接近想象.随着计算机数字技术的发展,二维动画制作也逐渐对传统的制作方式加以改进,将二维传统手绘动…