版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
《Java程序设计》电子课件宋波,李晋,李妙妍,张悦2023/12/30宋波,李晋,李妙妍,张悦第15章Java网络编程2023/12/30宋波,李晋,李妙妍,张悦本章要点网络相关知识基于URL的通信Socket通信机制2023/12/30宋波,李晋,李妙妍,张悦15.1网络相关知识Java为用户提供了完善的网络功能:获取网络上的各种资源;与服务器建立连接和通信;传递本地数据。这些功能都定义在
包中;2023/12/30宋波,李晋,李妙妍,张悦Internet网络协议层次图应用层(HTTP,FTP,Telnet,…)传输层(TCP,UDP,…)网络层(IP,…)链路层实现网络通信的Java程序2023/12/30宋波,李晋,李妙妍,张悦TCP:传输控制协议。一种基于连接的协议,为两个计算机之间提供了点到点的可靠数据流。可靠性高,但开销较大UDP:用户数据报协议。不是基于连接的,它从一个计算机发送独立的数据报,各数据报之间是相互独立。不能保证数据的可靠传输,但减少了额外开销。2023/12/30宋波,李晋,李妙妍,张悦端口(port):端口号由一个16bit的数字表示,TCP与UDP协议用它把数据发送到正确的应用。应用应用应用应用portportportportTCP或UDPport#DataPacket数据2023/12/30宋波,李晋,李妙妍,张悦Java所提供的网络支持机制按层次分为两大类:URL层次通过URL的网络资源表达形式确定数据在网络中的位置;利用URL对象中提供的相关方法,直接读入网络中的数据;或者将本地数据传送到网络的另一端。2023/12/30宋波,李晋,李妙妍,张悦Socket层次表示应用程序与网络之间的接口。例如TCPSocket。Socket通信主要是针对客户/服务器模式的应用和实现某些特殊协议的应用。通信过程是基于TCP/IP协议中的传输层接口Socket来实现。2023/12/30宋波,李晋,李妙妍,张悦15.2基于URL的通信URL是UniformResourceLocator(统一资源定位器)的缩写,表示Internet中某个资源的地址;浏览器可以分析和识别给定的URL,在网上查找文件或其他资源;URL在Java中是由包中的URL类表示的。2023/12/30宋波,李晋,李妙妍,张悦URL的基本结构为:protocol://host_name:port_number/file_nameprotocol指示访问资源所需的传输协议,如:http,ftp,gopher,file等;host_name指示资源所在的主机。2023/12/30宋波,李晋,李妙妍,张悦port_number:指示连接时所使用的通信端口号;file_name:要访问的文件在主机上的路径及文件名。引用:指向资源内部某个特定位置的引用。一般指定主机名和文件名,端口号和引用则省略。2023/12/30宋波,李晋,李妙妍,张悦2023/12/30宋波,李晋,李妙妍,张悦URL的构造方法URL对象是通过定义在包中的URL类进行构造的,一个URL对象表示一个URL地址。2023/12/30宋波,李晋,李妙妍,张悦URL的构造方法2023/12/30宋波,李晋,李妙妍,张悦2023/12/30宋波,李晋,李妙妍,张悦2023/12/30宋波,李晋,李妙妍,张悦publicURL(Stringprotocol,Stringhost,Stringfile)publicURL(Stringprotocol,Stringhost,intport,Stringfile)此方式必须给出确定的传输协议、机器名称、文件名,或者加上端口号。2023/12/30宋波,李晋,李妙妍,张悦例如::80/whitePaper/Javawhitepaper_1.html构造方式为:URLurl3=newURL("http","",80,"/whitePaper/Javawhitepaper_1.html");2023/12/30宋波,李晋,李妙妍,张悦与URL相关的异常使用URL的构造方法时,程序所给出的参数可能存在某些问题,比如:字符串的内容不符合URL的规定传输协议错误甚至根本不存在在类URL的构造方法中都声明抛出非运行时异常——MalformedURLException,在生成URL对象时必须捕获,进行处理。2023/12/30宋波,李晋,李妙妍,张悦【例15-1】2023/12/30宋波,李晋,李妙妍,张悦注意:URL对象一旦创建后就不能被修改,它的任何属性包括协议、主机名、文件名或端口号都不能改变2023/12/30宋波,李晋,李妙妍,张悦获取URL对象属性生成URL的对象后,可通过类URL提供的方法来获取对象属性:StringgetProtocol():获取传输协议;StringgetHost():获取机器名称;StringgetPort():获取通信端口号;StringgetFile():获取资源文件名称;StringgetRef():获取该URL文件的相对位置。2023/12/30宋波,李晋,李妙妍,张悦读入URL数据URL类中定义了openStream()方法,用以读取URL位置的数据,其返回值是一个InputStream数据流:publicfinalInputStreamopenStream()throwsIOException2023/12/30宋波,李晋,李妙妍,张悦示例2023/12/30宋波,李晋,李妙妍,张悦Strings;while((s=in.readLine())!=null) System.out.println(s);in.close();}}2023/12/30宋波,李晋,李妙妍,张悦程序说明在InputStreamReader对象in的创建过程中,其构造方法引用了执行URL对象的openStream()方法所获取的数据流作为它的参数。2023/12/30宋波,李晋,李妙妍,张悦2023/12/30宋波,李晋,李妙妍,张悦15.3Socket通信机制Socket:是两个程序进行双向数据传输的网络通信的端点,一般由一个地址加上一个端口号来标识。2023/12/30宋波,李晋,李妙妍,张悦Socket的基本概念1.建立连接 当程序需要建立网络连接时,必须有一台机器运行一个程序,随时等候连接,而另一端的程序则对其发出连接请求。2023/12/30宋波,李晋,李妙妍,张悦2.连接地址当程序建立网络连接时,需要知道地址或主机名称;另外,网络连接还需要一个端口号(可以将其当作扩展号码),连接到正确的主机之后,需要对该连接确认特定口令;2023/12/30宋波,李晋,李妙妍,张悦3.端口号在TCP/IP系统中,端口号由16bit组成,即在0~65535之间;实际应用中,前1024个端口号已经预先定义为一些特定服务器,因此一般不能使用,除非是想同这些服务器进行连接(如Telnet,SMTPmail,ftp等);2023/12/30宋波,李晋,李妙妍,张悦在两个程序连接之前,彼此之间必须达成一致,即由Client端负责初始化连接,而Server端随时等候请求;只有Client端和Server端指定端口号一致时连接才会建立;如果系统中两个程序所用端口号不一致,则连接无法建立;2023/12/30
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年高二年级上学期工作计划
- 全国青岛版信息技术八年级上册专题二第3课二、《编辑机器人程序》说课稿
- 2025幼儿园中班常规工作计划
- 著作权知识培训课件
- 2025年小学学校安全工作计划学校安全工作计划
- 2025年校本培训工作计划
- 三聚氰胺相关行业投资方案范本
- 快递柜行业相关投资计划提议范本
- Unit 5 Fun clubs Section A 2a-2e 说课稿 2024-2025学年人教版(2024)七年级英语上册
- 2025年高二下学期语文计划
- 课题1 金属材料 教学设计 九年级化学下册人教版2024
- 能源岗位招聘笔试题与参考答案(某大型国企)
- 《论拒不执行判决、裁定罪“执行能力”之认定》
- 工业设计基础知识单选题100道及答案解析
- 山西省晋中市2023-2024学年高一上学期期末考试 化学 含解析
- 过程审核表(产品组评分矩阵评审提问表(评分))-2024年百度过
- 操作手册模板【范本模板】
- 2025年湖北省武汉市高考数学模拟试卷附答案解析
- 【工作总结】建筑中级职称专业技术工作总结
- 江苏省2022年普通高中学业水平合格性考试数学试题(考试版)
- 2023年二轮复习解答题专题三:一次函数的应用方案选取型(原卷版+解析)
评论
0/150
提交评论