




免费预览已结束,剩余10页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
计算机网络课程设计 计算机网络课程设计报告姓名 学号 选题 HTTP客户端 指导老师 时间 目 录 一、 课程设计要求二、 相关知识三、 相关分析四、 流程图五、 课程设计结果及分析六、 源程序代码七、 课程设计总结八、 参考资料一、课程设计要求实验要求(1) HTTP客户端程序的功能是给出一个URL,要求程序能够获得指定URL所指向的内容,对于获得内容做进一步解析,并与平时使用的进行比较。通过HTTP客户端程序使学生掌握网络编程的基本知识和基本技能;(2) 使学生掌握HTTP协议的常用命令;通过跟踪运行java网络包,使学生了解网络编程实现的细节。实验要求本实验要求实现一个简单的HTTP客户端,具体内容及要求如下:(1)分析HTTP客户端程序的功能,要求能根据给定的URL,获得URL指向的资源,对于资源的内容可以不做任何的处理,直接打印即可;(2)实现HTTP客户端程序;二、相关知识本实验需要java网络编程的知识,使用get命令检索web浏览器上的资源,命令格式:GET/HTTP/1.1。需要制定URL,协议版本号等信息,此命令相对简单。HTTP协议简介超文本传输协议 (HTTP-Hypertext transfer protocol) 是分布式,协作式,超媒体系统应用之间的通信协议。是万维网(world wide web)交换信息的基础。它允许将超文本标记语言 (HTML) 文档从 Web 服务器传送到 Web 浏览器。HTML 是一种用于创建文档的标记语言,这些文档包含到相关信息的链接。可以单击一个链接来访问其它文档、图像或多媒体对象,并获得关于链接项的附加信息。HTTP工作在TCP/IP协议体系中的TCP协议上。客户机和服务器必须都支持 HTTP,才能在万维网上发送和接收 HTML 文档并进行交互URL简介统一资源定位符(URL,UniformResourceLocator的缩写)也被称为网页地址,是因特网上标准的资源的地址。它最初是由蒂姆伯纳斯李发明用来作为万维网的地址的。现在它已经被万维网联盟编制为因特网标准RFC1738了。URL使用数字和字母按一定顺序排列以确定一个地址。 URL的第一个部分http:/表示的是要访问的文件的类型,有时也使用ftp(file transferprotocol),意为文件传输协议,主要用来传输软件和大文件(许多做软件下载的网站就使用ftp作为下载的网址),客户程序首先看到http(超文本传送协议),便知道处理的是HTML链接。接下来的是站点地址,最后是目录。必须注意,WWW 上的服务器都是区分大小写字母的,所以,千万要注意正确的URL大小写表达形式。URLConnection简介URLConnection是个抽象类,它有两个直接子类分别是HttpURLConnection和JarURLConnection。另外一个重要的类是URL,通常URL可以通过传给构造器一个String类型的参数来生成一个指向特定地址的URL实例。 每个 HttpURLConnection 实例都可用于生成单个请求,但是其他实例可以透明地共享连接到 HTTP 服务器的基础网络。请求后在 HttpURLConnection 的 InputStream 或 OutputStream 上调用 close() 方法可以释放与此实例关联的网络资源,但对共享的持久连接没有任何影响。如果在调用 disconnect() 时持久连接空闲,则可能关闭基础套接字。三、 相关分析首先利用Java Applet生成的框图,将框图按照需要划分成不同的部分,创建按钮,文本框等,并设计文本框的先是位置,然后建立连接,以及一些异常处理,将接收到的html文件转换成常用的文本格式,客户根据需要输入相应的网址,但是输入必须是的格式,这样效率将降低很多,而且实用性比较差。如果可以的话可以进一步的加以改进。HTTP客户端程序至少有两种试下方式:基于java网络包中的URLConnecion类实现和客户端套接字实现,这里以URLConnection的实现为例,具体思路如下:(1) 根据URL的内容创建URLConnection对象;(2) 根据创建的URL对象创建URLConnection对象;(3) 获得输入流对象;(4) 从输入流对象中读取指定URL所指向的内容。四、 流程图程序流逻辑框图能够帮助我们更好的熟悉和了解该系统的运行过程,本系统的一些逻辑框图如下所示:Web服务器互联网独立的应用程序Web浏览器客户端读取文件本地文件客户端从web服务器读取文件接受URL请求进行域名解析向目标Web服务器发送连接请求域名解析返回IP地址返回出错信息调用ipv6协议栈,与web服务器建立TCP6连接IP地址域名Ipv4地址Ipv6地址通信并在Web服务器和客户端之间转发数据是是是否否否否否否URL与地址之间的处理过程开始返回接收HTTP方法并设定方法标志计算URL接收HTTP方法并设定方法标志接收并处理控制数据存在网页?HTTP方法?GETNYPOSTHTTP解析流程五、 课程设计结果及分析运行该程序后,就可得到基于URL的界面如下图所示:只要在该输入框中键入相应的网络地址就可以得到该网页的编辑内容现在URL中键入IP地址就可以得到编辑该网页的代码,结果如下如所示:只需在该输入框中键入相应的网址就可以跳转到相应的网站。如输入人名“孔令晶”,结果如下图所示当在网址中输入时,结果如下,这就是本实验需要改进的地方六、 程序源代码基于URL的HttpClient.java程序代码如下:import java.awt.*;import java.awt.event.*;import .*;import java.io.*;import javax.swing.JEditorPane;import javax.swing.*;import javax.swing.event.*;class Win extends JFrameimplements ActionListener,RunnableButton button;URL url;JEditorPane editor;TextField text; / 定义一个长度为118的定长字节数组byte b=new byte118;Thread thread;Win()text=new TextField(20);/创建一个按钮来点击事件button=new Button(确定);editor=new JEditorPane();editor.setEditable(false);ScrollPane scroll=new ScrollPane();scroll.add(editor);button.addActionListener(this);thread=new Thread(this);/创建一个面板来保存一个标签、文本字段和一个按钮Panel p=new Panel();p.add(new Label(请输入网址:);p.add(text);p.add(button);add(scroll,BorderLayout.CENTER);add(p,BorderLayout.NORTH);setBounds(100,100,360,360);setVisible(true);validate(); /写一个类继承WindowAdapter,然后又覆盖了它其中的一部分方法,再新建这/个类的一个实例,作为addWindowListener的参数addWindowListener(new WindowAdapter()public void windowClosing(WindowEvent e)System.exit(0););/setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);/创建多画面浏览器editor.addHyperlinkListener(new HyperlinkListener()public void hyperlinkUpdate(HyperlinkEvent e)if(e.getEventType()=HyperlinkEvent.EventType.ACTIVATED)tryeditor.setPage(e.getURL();/捕捉异常catch(IOException el)editor.setText(+el););public void actionPerformed(ActionEvent e)if(!(thread.isAlive()thread=new Thread(this);trythread.start();catch(Exception ee)text.setText(我正在读取+url);public void run()tryeditor.setText(null);/获取URL从文本字段url=new URL(text.getText().trim();editor.setPage(url);/捕捉异常catch(Exception el)text.setText(+el);return;public class HttpClientpublic static void main(String args)new Win();七、 总结网络课程设计应该是大学以来做的最难的一次吧,以前只是简单的写一些短的代码,也不需要界面,直接调试结果就可以,这次却要做界面,因为以前没有做过界面,因为不知道怎么用C写界面,所以就用了Java Applet。虽然以前有看过java方面的书,但是真正的写起来并不是那么的容易,即便是用人家的代码改写的,中间还是出现了很多问题,由此可见,自己的动手能力太差了,平时还是应该注意这一方面的练习。这也许就是课程设计的真正意义。正如老师所说,课程设计是我们专业课程知识综合应用的实践训练,是我们迈向社会,从事职业工作前一个必不少的过程。在这次课程设计中不仅检验了我所学习的知识,也培养了我如何去把握一件事情,如何去做一件事情,又如何完成一件事情。在设计过程中,虽然使自己在做,但因为自己所学的太少了,所以还是和同学进行了探讨,相互学习,相互监督。不仅学会了合作,学会了理解,也学会了做人与处世。因为设计的是一个HTTP客户端的软件,使得在输入框中键入一个URL地址,就可以获得URL所指向的内容,所以在该设计过程中,通过对一些Http相关知识的查询,使我更加深刻的掌握了网络编程的基本知识和基本技能,也熟悉了一些Http协议的常用命令。在该过程设计中通过对eclipse的操作,使我对Java和计算机网络课程知识的理解也更加深刻,以及熟练了对计算机网络协议的认识和编程的技能。但是因为自己能力有限,写的程序还有很多不够完善,与实际软件的差距还很大,软件代码较冗余、效率一般等,实际运用价值几乎为零,这都是对相关功能缺乏认识和实际软件开发经验不足造成的,我想在今后的学习
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年玉溪市鲜花订购合同示例
- 临活用工合同范本
- 清水房修建合同范本
- 建筑简易计税合同范本
- 机械监控采购合同范本
- 夫妻购房担保合同范本
- 2025赛事赞助合同模板
- 自助牛排采购合同范本
- 课室租赁合同范本
- 上海租赁房子合同范本
- 品管圈PDCA提高手卫生依从性手卫生依从性品管圈完整版
- NB-T+31010-2019陆上风电场工程概算定额
- JT-T-1234-2019道路冷链运输服务规则
- 小学数学一年级下册(一年级升二年级)暑假链接提升训练题(共26份251题)
- 考研英语长难句分析技巧及实战70例
- 安全保卫工作会议记录6篇
- DBJ∕T15-232-2021 混凝土氯离子控制标准
- 刑事报案材料模板(涉嫌诈骗罪)
- 乳制品配送服务质量保障方案
- 高血压防治指南解读课件
- 2024在役立式圆筒形钢制焊接储罐安全附件检验技术规范
评论
0/150
提交评论