面向对象程序设计java-第14章

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。


端口号
– 网络通信时同一机器上的不同进程的标识。 网络通信时同一机器上的不同进程的标识。如:80、21、23和25等, 、 、 和 等 其中1—1024为系统保留的端口号。 为系统保留的端口号。 其中 为系统保留的端口号 (1)使用 )使用URL进行网络编程 进行网络编程 (2)使用 )使用Socket通信 通信 (3)使用 )使用UDP通信 通信

InetAddress类 类
方法名
String getHostAddress() String getHostName() static InetAddress getLocalHost() String getByName() getAddress() getAllByName() getByAddress() hastCode() toString()
上节回顾
• • • • Java I/O基本概念 流的基础知识 字节流与字符流 利用流实现基本的I/O操作
网络编程
学习目的与要求: 学习目的与要求:
• • • 深刻理解网络编程模型。 深刻理解网络编程模型。 深刻理解相关网络概念。 深刻理解相关网络概念。 熟练使用Socket进行编程 熟练使用 进行编程
通过给定的协议、主机和文件名建立 通过给定的协议、主机和文件名建立URL对象 对象
通过给定协议、主机、端口号和文件名建立 通过给定协议、主机、端口号和文件名建立URL对象 对象 获得端口号 获得协议 获得主机名 获得文件名 获得连接 获得默认的端口号 获得用户信息 不必显式指定寻找的资源类型,就可以取回资源并返回相应的形式。 例如 例如GIF或 不必显式指定寻找的资源类型,就可以取回资源并返回相应的形式。(例如 或 JPEG图形资源会返回一个 图形资源会返回一个Image对象 对象) 图形资源会返回一个 对象 打开一个输入流,返回类型是 打开一个输入流,返回类型是InputStream,这个输入流的起点是 ,这个输入流的起点是URL实体对象的内 实体对象的内 容所代表的资源位置处,终点则是使用了该URL实体对象及方法 实体对象及方法openStream()的程序。 的程序。 容所代表的资源位置处,终点则是使用了该 实体对象及方法 的程序 在输入流建好了之后,我们就可以从输入流中读取数据了, 在输入流建好了之后,我们就可以从输入流中读取数据了,而这些信息数据的实际来 源,则是最为输入流起点的网上资源文件


IP地址 地址
• IP地址 地址

– –
Internet上的计算机都有一个地址,这个地址就是一个数,称为IP 上的计算机都有一个地址,这个地址就是一个数,称为 上的计算机都有一个地址 地址, 地址,它惟一地标识了网络上的每台计算机
目前Internet中IP地址使用的都是 中 地址使用的都是 地址使用的都是IPv4协议,但随着时间的推移 协议, 目前 协议 但随着时间的推移IPv6协议将 协议将 会取代IPv4协议成为 地址的主要方案 协议成为IP地址的主要方案 会取代 协议成为 上都是通过IP地址来访问主机 地址不容易记忆, 在Internet上都是通过 地址来访问主机,但IP地址不容易记忆,我们通常 上都是通过 地址来访问主机, 地址不容易记忆 利用域名来访问Internet上的主机 利用域基本格式: 的基本格式 protocol://hostname:port/resourcename#anchor, , URL中各组成项的主要含义如表 中各组成项的主要含义如表12.2所示 中各组成项的主要含义如表 所示
符号 含义 协议,包括 协议,包括http、ftp、gopher、news、telnet等 、 、 、 、 等 主机名,指定 服务器能访问的WWW上的计算机名称, 上的计算机名称, 主机名,指定DNS服务器能访问的 服务器能访问的 上的计算机名称 如 端口号,可选,表示所连的端口, 端口号,可选,表示所连的端口,只在要覆盖协议的缺省 端口时才有用,如果忽略端口号, 端口时才有用,如果忽略端口号,将连接到协议缺省的端 例如http协议的缺省端口为 协议的缺省端口为80 口,例如 协议的缺省端口为 资源名, 资源名,是主机上能访问的目录或文件 标记,可选, 标记,可选,它指定在资源文件中的有特定标记的位置
网络编程基础
C/S模式和 模式和B/S模式 模式和 模式
客户/服务器模型
TCP/IP协议 协议
– 所谓通信协议, 所谓通信协议,就是客户端计算机与服务器端计算机在网络上通信 的方法。计算机网络形式多样,内容繁杂。 的方法。计算机网络形式多样,内容繁杂。网络上的计算机要互相 通信, 通信,必须遵循一定的协议 目前使用最广泛的网络协议是Internet上所使用的 上所使用的TCP/IP协议。 协议。 目前使用最广泛的网络协议是 上所使用的 协议 TCP协议即传输控制协议,是一种面向连接的保证可靠传输的协议; 协议即传输控制协议, 协议即传输控制协议 是一种面向连接的保证可靠传输的协议; IP协议即网际协议,是一种面向无连接的协议。通过 协议即网际协议, 协议传输, 协议即网际协议 是一种面向无连接的协议。通过TCP协议传输, 协议传输 得到的是一个顺序的无差错的数据流 UDP是User Datagram Protocol的简称,是一种无连接的协议,每 的简称, 是 的简称 是一种无连接的协议, 个数据报都是一个独立的信息,包括完整的源地址或目的地址, 个数据报都是一个独立的信息,包括完整的源地址或目的地址,它 在网络上以任何可能的路径传往目的地,因此能否到达目的地, 在网络上以任何可能的路径传往目的地,因此能否到达目的地,到 达目的地的时间以及内容的正确性都是不能被保证的
protocol hostname
port resourcename anchor
表12.2 URL含义

URL构造方法和常用方法 构造方法和常用方法
方法名 方法功能
建立指向url资源的 建立指向 资源的URL对象 资源的 对象 通过URL基地址和相对于该基地址的资源名建立 基地址和相对于该基地址的资源名建立URL对象 通过 基地址和相对于该基地址的资源名建立 对象
方法功能
获取InetAddress所含的 地址 所含的IP地址 获取 所含的 获取InetAddress所含的域名 所含的域名 获取 获取本地机的地址
通过域名获取IP地址或通过 地址获取域名 通过域名获取 地址或通过IP地址获取域名 地址或通过 返回IP地址的字节形式 返回 地址的字节形式 返回指定主机名的IP地址 返回指定主机名的 地址 返回指定字节数组的IP地址形式 返回指定字节数组的 地址形式 返回InetAddress对象的哈希码 对象的哈希码 返回 返回地址转换成的字符串
使用URL方式进行网络连接 方式进行网络连接 使用
• 在JAVA中, .URL类和 中 类和 .URLConection类使编程者方便地利用 类使编程者方便地利用 URL在Internet上进行网络通信。URL类和 在 上进行网络通信。 类和 上进行网络通信 URLConnection类提供给我们一种简便的方法编写 类提供给我们一种简便的方法编写 网络程序,实现一些较高级的协议访问Internet 网络程序,实现一些较高级的协议访问 URL类封装了使用统一资源定位器访问 类封装了使用统一资源定位器访问WWW上的 类封装了使用统一资源定位器访问 上的 资源的方法。 资源的方法。这个类可以生成一个寻址或指向某个 资源的对象。 类对象指向WWW资源 资源(Web页、 资源的对象。URL类对象指向 类对象指向 资源 页 文本文件、图形文件、声频片段等) 文本文件、图形文件、声频片段等
while((strInfo=br.readLine())!=null) System.out.println(strInfo); br.close(); isr.close(); } catch(Exception e) { System.out.println(e); } } }


URL和IP地址 和 地址
– URL
• • • • • URL即统一资源定位器,是Internet的关键部分,它表示 即统一资源定位器, 的关键部分, 即统一资源定位器 的关键部分 Internet上某一资源的地址 上某一资源的地址 它提供了人和机器的导航,其功能是指向计算机里的资源, 它提供了人和机器的导航,其功能是指向计算机里的资源,即定 可以分成三个部分: 位。URL可以分成三个部分:通信协议、计算机地址和文件 可以分成三个部分 通信协议、 URL常见的通信协议有三种:http,ftp和file 常见的通信协议有三种: , 和 常见的通信协议有三种 URL是最为直观的一种网络定位方法。 是最为直观的一种网络定位方法。 是最为直观的一种网络定位方法 使用URL符合人们的语言习惯,容易记忆,所以应用十分广泛。 符合人们的语言习惯, 使用 符合人们的语言习惯 容易记忆,所以应用十分广泛。 而且在目前使用最为广泛的TCP/IP中对于 中对于URL中主机名的解析也 而且在目前使用最为广泛的 中对于 中主机名的解析也 是协议的一个标准, 是协议的一个标准,即所谓的域名解析服务 使用URL进行网络编程,不需要对协议本身有太多的了解,功能 进行网络编程, 使用 进行网络编程 不需要对协议本身有太多的了解, 也比较弱, 也比较弱,相对而言是比较简单的
表12.1 InetAddress类常用方法
InetAddress类应用 类应用
//获得计算机名称和 地址演示程序 获得计算机名称和IP地址演示程序 获得计算机名称和 import .*; public class INetDemo { public static void main(String[] args) { new INetDemo().say(); } public void say() { try { InetAddress i = InetAddress.getLocalHost(); System.out.println(i); System.out.println("主机名称 主机名称 为:"+i.getHostName()); System.out.println("IP地址 地址 为:"+i.getHostAddress()); } catch(Exception e){e.printStackTrace();} } }
URL(String url) URL(URL baseURL,String relativeURL) URL(String protocol,String host,String file) URL(String protocol,String host,int port,String file) getPort() getProtocol() getHost() getFile() getRef() getDefaultPort() getUserInfo getContent()
openStream()
表12.3 URL类构造方法和常用方法
URL应用实例 应用实例
//URL应用演示程序 应用演示程序 import .*; import java.io.*; public class UrlDemo { public static void main(String args[]) throws Exception { try { URL url=new URL(""); InputStreamReader isr=new InputStreamReader(url.openStream()); BufferedReader br=new BufferedReader(isr); String strInfo;
相关文档
最新文档