网络编程技术第四次课.ppt_第1页
网络编程技术第四次课.ppt_第2页
网络编程技术第四次课.ppt_第3页
网络编程技术第四次课.ppt_第4页
网络编程技术第四次课.ppt_第5页
已阅读5页,还剩38页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第四次课 InetAddress类和URL类的用法一 网络编程部分内容简介 二 查找Internet地址 三 用URL检索数据 一 网络编程部分内容简介 一 网络编程部分内容概要 1 查找Internet地址2 用URL检索数据3 套接字编程4 用Java收发E mail 一 网络编程部分内容简介 二 包简介 包 用于网络通信的类 InetAddress 互联网地址类 URL 统一资源定位类 Socket 套接口类 ServerSocket 服务器套接口类 DatagramPacket 数据包类 DatagramSocket 数据包套接口类 二 查找Internet地址 一 IP地址和域名 IP地址代表的含义及其组成 Internet主机的一种数字型标识 它由网络标识 Netid 和主机标识 Hostid 组成 目前大多数IP地址是4字节长 称为IPv4地址 还有一部分IP地址16字节长 称为IPv6地址 4或6称Internet协议版本 本课程中的IP地址均采用IPv4地址 二 查找Internet地址 一 IP地址和域名 为什么需要域名系统DNS DomainNameSystem IP地址是一种数字型网络和主机标识 对用户来说难于记忆 DNS将网络上计算机的IP地址与一个用符号表示的域名 主机名 联系在一起 对用户来说便于记忆 如 二 查找Internet地址 一 IP地址和域名 IP地址和域名之间的其他关系一台计算机可以有多个域名 分别用于不同的用途一台主机从一个地方移动到另一个地方 如果更换了所属网络 它的IP地址必须更换 但是域名可以保留 如何在Java程序中根据IP地址查找主机的域名 如何在Java程序中根据域名查找主机对应的IP地址 二 查找Internet地址 二 InetAddress类 功能简介InetAddress类又称为互连网地址类 是Java对IP地址的封装 该类的对象是封装计算机名称和IP地址的实例 可以使用主机名来获取InetAddress的实例 或者使用IP地址来构造InetAddress的实例 InetAddress对域名进行解析是使用本地机器配置或者网络命名服务 如域名系统DNS 和网络信息服务 NetworkInformationService NIS 来实现的 InetAddress类在默认情况下 会缓存一段有限时间的映射 对于主机名解析不成功的结果 会缓存非常短的时间 10秒 来提高性能 二 查找Internet地址 二 InetAddress类 获取InetAddress类对象的方法InetAddress的构造函数不是公开的 public 所以需要通过它提供的静态方法来获取 1 publicstaticInetAddressgetByName Stringhostname 根据给定的主机名hostname InetAddress会尝试做连接DNS服务器 并返回该主机名对应的InetAddress对象 InetAddressi InetAddress getByName System out println IP i getHostAddress 二 查找Internet地址 二 InetAddress类 获取InetAddress类对象的方法2 publicstaticInetAddress getAllByName Stringhostname 给定主机名hostname 返回与该主机名对应的所有InetAddress对象 InetAddress inetOf163 InetAddress getAllByName for intj 0 j inetOf163 length j System out println inetOf163 j toString 二 查找Internet地址 二 InetAddress类 获取InetAddress类对象的方法3 publicstaticInetAddressgetLocalHost 返回本机的InetAddress对象 InetAddressi InetAddress getLocalhost 4 publicstaticInetAddressgetByAddress byte addr 根据给定的addr 返回其对应的InetAddress对象 二 查找Internet地址 二 InetAddress类 异常的抛出利用上述方法获取InetAddress类的对象时 可能会抛出异常 如果安全管理器不允许访问DNS服务器或禁止网络连接 会抛出SecurityException 如果找不到对应主机的IP地址 或者发生其他网络I O错误 这些方法会抛出UnknowHostException 练习 返回所对应的InetAddress对象 并将其打印输出 二 查找Internet地址 二 InetAddress类 应用举例 1 InetOfBaidu javapublicclassInetOfBaidu publicstaticvoidmain Stringargs throwsException InetAddressaddress InetAddress getByName 使用getByName 通过 来获取InetAddress的对象 并且输出到控制台 System out println address 默认调用了InetAddress toString 方法System out println 二 查找Internet地址 二 InetAddress类 应用举例 1 InetOfBaidu javapublicclassInetOfBaidu publicstaticvoidmain Stringargs throwsException InetAddress addresses InetAddress getAllByName 使用getAllByName 根据主机名返回其可能的所有 InetAddress对象 保存在一个数组addresses中 for InetAddressaddr addresses System out println addr 二 查找Internet地址 二 InetAddress类 InetAddress类的其他方法1 publicStringgetHostName 以字符串形式返回InetAddress对象中的主机名部分 2 publicStringgetHostAddress 以字符串形式返回InetAddress对象的Internet地址部分 3 publicbyte getAddress 返回InetAddress对象中的IP地址的原始形式 结果按网络字节顺序排序 地址的最高位字节在getAddress 0 中 二 查找Internet地址 三 InetAddress应用举例 应用举例 2 HostIp java返回和本机的InetAddress信息 并以字节形式输出的IP地址信息 返回主机名对应的所有地址信息 思路 根据给定的域名 选择合适的方法创建InetAddress类的对象 getLocalHost getAllByName还是getByName 根据InetAddress类的方法返回信息的不同 调用合适的方法进行相关信息的输出 getHostName getHostAddress getAddress 二 查找Internet地址 三 InetAddress应用举例 应用举例 2 HostIp java返回和本机的InetAddress信息 并以字节形式输出的IP地址信息 返回主机名对应的所有地址信息 读程序 回答问题 InetAddress ipOf163 InetAddress getAllByName for InetAddressaddr ipOf163 System out println 对应的InetAddress信息 ipOf163 试解释棕色代码部分所代表的含义 二 查找Internet地址 三 InetAddress应用举例 应用举例 2 HostIp java程序运行结果截图 二 查找Internet地址 三 InetAddress应用举例 应用举例 3 HostLookup java基本要求编写一个程序 完成主机域名与IP地址的查询 要求两种工作方式 命令行方式和交互方式如果用户输入了域名 要求程序返回对应的IP地址如果用户输入了IP地址 要求程序返回其对应的域名思路如何判定用户输入的信息是域名还是IP地址 如何提取用户在命令行方式下的参数 程序中如何处理是命令行方式还是交互方式 二 查找Internet地址 三 InetAddress应用举例 应用举例 3 HostLookup java思路如何判定用户输入的信息是域名还是IP地址 编写一个方法 只要用户输入的参数里面含有不是数字 又不是 点的字符 就认为用户输入的是一个域名 交互方式下如何提取用户的输入 对System in进行缓冲式字符处理BufferedReaderbin newBufferedReader newInputStreamReader System in 二 查找Internet地址 三 InetAddress应用举例 应用举例 3 HostLookup java思路如何提取用户在命令行方式下的参数 main 方法中的数组args args 0 args 1 二 查找Internet地址 三 InetAddress应用举例 应用举例 3 HostLookup java程序流程图 Lookup args i 命令行参数 提示用户输入主机名或IP地址 提取用户输入信息host host exit quit 结束退出 lookup host host是主机名 isHostname host 返回其IP地址 根据host构造其InetAddress对象 返回其主机名 lookup host 三 用URL检索数据 一 URL 统一资源定位符 UniformResourceLocator其值表示网络上某个资源的地址统一资源定位是WWW客户机访问Internet网上资源时用来标识这些资源的名字和地址的只要按照URL规则定义了某个资源 网络上其他程序就可以通过URL来访问这种资源 三 用URL检索数据 一 URL 统一资源定位符的格式 Method 获取资源时使用的传输协议 如FTP FILE HTTPHostname 资源所在的计算机 可以是IP地址 也可以是主机名或者域名 port 服务端口号 可省略 使用某协议的默认值 PATH和FILEName分别指路径名和文件名 例如 访问搜狐网站的资源file d myfile 访问本机资源 d myfile下的文件和目录信息 三 用URL检索数据 一 URL URL的作用Internet寻址 网络资源的定位连接在客户与服务器之间可直接进行网络资源的访问J URL类其中描述了WWW资源特征及读取内容的方法 URL对象一个URL对象可表示一个网络资源 包括 协议名 主机域名 地址 端口号 路径和文件名 三 用URL检索数据 一 URL URL对象的构造方法URL Strings S表示网络中的一个资源 例如 URLmyURL1 newURL 80 URLmyURL2 newURL http index html URLmyURL3 newURL http 80 index html 注意 创建URL对象时如果指定了未知协议 会抛出MalformedURLException 所以URL类对象的创建通常在try catch中 三 用URL检索数据 一 URL URL的常用方法 1 publicURLConnectionopenConnection throwsIOException返回一个URLConnection对象 该对象代表URL对象连接的网络资源 2 publicfinalInputStreamopenStream throwsIOException打开一个到URL对象指向的网络资源的输入流 通过这个流 可以读取这个网络资源的内容 三 用URL检索数据 一 URL URL的常用方法 3 publicStringgetFile 返回URL的文件名 4 publicStringgetHost 返回URL的主机名 对于 file 协议 这是一个空串 5 publicintgetPort 返回URL的端口号 6 publicStringgetProtocol 返回URL的协议名 7 publicStringgetRef 返回URL的标记 三 用URL检索数据 二 URL类的用法 利用URL类获取网络资源的步骤建立URL对象调用URL类的OpenStream 方法与指定的URL建立连接并返回一个InputStream类的对象 将访问WWW资源的操作就转变为I O操作 然后就可用字节流的方式读取WWW资源数据 注意这种方式访问网络资源时 只能以只读方式从指定的URL处读取资源数据 三 用URL检索数据 二 URL类的用法 应用举例 4 TestURL1 java在文本区中利用URL类返回指定网站的网络资源 如返回的资源 关键代码 URLurl newURL strURL BufferedReaderbr newBufferedReader newInputStreamReader url openStream StringBuildersb newStringBuilder while str br readLine null sb append n str br close textOfURLContent setText sb toString 三 用URL检索数据 二 URL类的用法 应用举例 4 TestURL1 java运行效果图 三 用URL检索数据 二 URL类的用法 应用举例 4 TestURL1 java在文本区中利用URL类返回指定网站的网络资源 如返回的资源 问题 最终通过URL类对象的openStream 方法读取到JTextArea中的是什么内容 为什么可以将读取出来的网络资源转换为BufferedReader 三 用URL检索数据 二 URL类的用法 应用举例 5 TestURL2 java修改TestURL2 java 在界面最上面添加一个文本框 让用户自己输入需要访问的网络资源的URL 程序运行截图 输入网址 三 用URL检索数据 二 URL类的用法 应用举例 5 TestURL2 java修改TestURL2 java 在界面最上面添加一个文本框 让用户自己输入需要访问的网络资源的URL 读程序 回答问题 分析TestURL1 java和TestURL2 java 这两个程序再将网络资源读取到文本区的过程中 流的读取技术有何不同之处 三 用URL检索数据 二 URL类的用法 应用举例 6 TestURL3 java修改TestURL3 java 在文本区显示URL资源对应的HTML文件的网页运行效果 思路 前面TestURL1 java和TestURL2 java中 读取到文本区中的内容都是html代码 是否需要一个组件 来讲这些html代码解释执行 以显示出网页的运行效果 javax swing JEditorPane 这个组件可以解释执行HTML文件 只要将HTML文件读入到JEditorPane中 该HTML教程就会被解释执行在JEditorPane中 显示网页的实际运行效果 三 用URL检索数据 二 URL类的用法 应用举例 6 TestURL3 java编程步骤1 构造JEditorPane对象 JEditorPane构造方法publicJEditorPane publicJEditorPane URLinitialPage throwsIOExceptionpublicJEditorPane Stringurl throwsIOException2 JEditorPane对象通过调用setPage 方法来显示URL资源中的内容publicvoidsetPage URLpage throwsIOException 三 用URL检索数据 二 URL类的用法 应用举例 6 TestURL3 java运行效果图问题 网页中的超链接可以使用吗 三 用URL检索数据 二 URL类的用法 应用举例 6 TestURL3 java关键代码EditorWin editPane newJEditorPane editPane setEditable false jScrollPane newJScrollPane editPane Publicvoidrun StringurlSTR textFldOfURLAddress getText trim 提取用户在文本框中输入的地址url newURL urlSTR 建立URL对象editPane setPage url 调用setPage 方法来显示URL资源中的内容 三 用URL检索数据 二 URL类的用法 应用举例 7 TestURL4 java修改TestURL3 java 使得JEditPane中显示的网页的超链接可用 思路要处理网页中的超链接 就需要对超链接事件进行处理 超链接事件 HyperlinkEvent超链接监视器接口 HyperlinkListener接口中的方法 hyperlinkUpdate HyperlinkEvente 三 用URL检索数据 二 URL类的用法 应用举例 7 TestURL4 java修改

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论