Java程序设计案例教程PPT2 第8章 Java网络编程基础

上传人:w****i 文档编号:94568179 上传时间:2019-08-08 格式:PPT 页数:19 大小:321.50KB
返回 下载 相关 举报
Java程序设计案例教程PPT2 第8章 Java网络编程基础_第1页
第1页 / 共19页
Java程序设计案例教程PPT2 第8章 Java网络编程基础_第2页
第2页 / 共19页
Java程序设计案例教程PPT2 第8章 Java网络编程基础_第3页
第3页 / 共19页
Java程序设计案例教程PPT2 第8章 Java网络编程基础_第4页
第4页 / 共19页
Java程序设计案例教程PPT2 第8章 Java网络编程基础_第5页
第5页 / 共19页
点击查看更多>>
资源描述

《Java程序设计案例教程PPT2 第8章 Java网络编程基础》由会员分享,可在线阅读,更多相关《Java程序设计案例教程PPT2 第8章 Java网络编程基础(19页珍藏版)》请在金锄头文库上搜索。

1、第8章 Java网络编程基础,8.1【案例24】获取IP地址 8.2【案例25】网络聊天工具,8.1【案例24】获取IP地址,1计算机网络基础知识 (1)什么是Internet:因特网(Internet)是目前世界上最大的计算机网络,更确切的说它是一个互连的网络,几乎覆盖了整个世界范围。最初组建这个网络的目的是为方便世界各地的研究部门和大学的研究者及其学生探讨学术方面的问题,因此也可以称之为科研教育网或国际学术网。20世纪90年代后,因特网开始向社会开放,利用该网络开展商贸活动成为热门话题。大量人力和财力的投入,使得因特网得到迅速的发展。许多企业也逐步意识到进入因特网的重要性,不仅可以从网上索

2、取大量的商业信息,更可以通过因特网向国际社会展现和推销自己。 单纯的把Internet看成是一个计算机网络,或者是相互连接的计算机网络群,都不是十分正确的。根据当今的观点,计算机网络只是一个提供了简单的传载信息的媒体,而Internet的优越性和实用性则在于信息而不是网络。 Internet采用一种唯一通用的地址格式,为Internet中的每一个网络和几乎每一台主机都分配了一个地址,就像一个实实在在的整体。Internet中地址类型有IP地址和域名地址两种。,IP地址是连接在Internet上的每台计算机都有的一个唯一的地址。发送方计算机在通信之前必须知道接收方计算机的地址。这和日常邮寄普通信

3、件是一样的道理。只是Internet上使用的地址称为Internet地址,简称IP地址。它是四个以小数点隔开的十进制整数,每个整数的范围是0255。Internet上的每一台计算机和路由器都有一个由相关的管理机构指定的IP地址。计算机用四个字节的二进制单位(32位)存储IP地址,每个整数对应一个字节。例如,有一台计算机的IP地址为142.7.1.3,而另一台计算机的IP地址为126.12.3.20。IP地址分为以下五类: A类(A Class):0.0.0.0127.255.255.255适用于大型网络 B类(B Class):128.0.0.0191.255.255.255适用于中型网络 C

4、类(C Class):192.0.0.0223.255.255.255适用于小型网络 D类和E类:保留作特殊用途。,域名抵制由于IP地址是数字型的,不方便记忆,也难以理解,所以Internet采用了另一套字符的地址方案,即域名地址。它是用具有一定意义的字符串来标识主机地址,IP与域名地址两者相互对应,而且保持全网统一。在网络中,一台主机的IP地址是唯一的,即每台主机只能有一个IP地址,但它的域名数却可以有多个。 第一级域名往往表示主机所属的国家、地区或网络性质的代码,如中国是cn、英国是uk、商业组织的代码则是com等。第二、三级是子域名,第四级是主机名。 在中国,一级域名为cn,二级域名有:

5、教育edu、电信网net、科研网ca、团体or、政府go、商业co、军队mi等。各省则采用其拼音缩写,如bj代表北京,sh代表上海,ah则代表安徽。 由于Internet主要是在美国发展壮大的,所以美国的主机其第一级域名一般直接说明其主机性质,而不是国家代码。如果用户看到某主机的第一级域名为com、edu、gov等,一般可以判断这台主机置于美国。因为其他国家第一级域名一般是其国家的代码。,(2)TCP/IP协议:TCP/IP是Transmission Control Protocol/Internet Protocol的简写,中文译名为传输控制协议/互联网络协议,是Internet最基本的协议

6、,简单地说,就是由底层的IP协议和TCP协议组成的。TCP/IP协议的开发工作始于20世纪70年代,是用于互联网的第一套协议。 IP协议是因特网中的基础协议,由IP协议控制传输的协议单元称为IP数据报。IP数据报中含有发/收方的IP地址。IP提供不可靠的、尽力的、无连接的数据报投递服务,构成了因特网数据传输的基础;以此为基础,TCP协议软件增加了确认重发、滑动窗口和复用/解复用等机制,提供面向连接的、可靠的、流投递服务。 Internet没有形成之前,各个地方已经建立了很多小型的网络,称为局域网,Internet的中文意义是“网际网”,它实际上就是将全球各地的局域网连接起来而形成的一个“网之间

7、的网(即网际网)”。然而,在连接之前的各式各样的局域网却存在不同的网络结构和数据传输规则,将这些小网连接起来后各网之间要通过什么样的规则来传输数据呢?这就象世界上有很多个国家,各个国家的人说各自的语言,世界上任意两个人要怎样才能互相沟通呢?如果全世界的人都能够说同一种语言(即世界语),这个问题不就解决了吗?TCP/IP协议正是Internet上的“世界语”。,(3)通信端口:一般来说,一台计算机只通过一条线路连接到网络上。但是,一台计算机中往往有很多应用程序需要进行网络通信。那么网络如何进行区分呢? 使用网络端口号(port)可以解决这个问题。端口号是一个标记计算机逻辑通信信道的正整数,端口号

8、不是物理实体。IP地址和端口号组成了所谓的Socket,Socket是网络上运行的程序之间双向通信链路的最后终结点,它是TCP和UDP协议的基础。 IP协议使用IP地址使数据投递到正确的计算机上,TCP和UDP协议使用端口号将数据投递给正确的应用程序。 端口号是用一个16位的整数来表达的,其范围为065535,其中01023为系统所保留,专门用于那些通用的服务。例如,http服务的端口号为80,telnet服务的端口号为21,ftp服务的端口为23等。因此,在编写网络通信程序时,应当选择一个大于1023的数作为端口号,以免发生冲突。 (4)URL:URL是统一资源定位符(Uniform Res

9、ource Locator)的简称,它表示Internet上某一资源的地址。Internet上的资源包括HTML文件、图像文件、声音文件、动画文件以及其他任何内容(并不完全是文件,也可以是一个对数据库的查询等)。通过URL就可以访问Internet。浏览器或其他程序通过解析给定的URL,就可以在网络上查找相应的文件或其他资源。,一个URL包括协议名称和资源名称两部分内容,中间用冒号隔开,其格式如下。 例如,http:/ 协议名称指的就是获取资源时所使用的应用层协议,如http,ftp,file等;资源名称则是资源的完整地址,包括主机名、端口号、文件名或文件内部的一个引用。当然,并不是所有的UR

10、L都必须包含这些内容。 一个完整URL的格式如下。 2使用URL类编程 Java语言的网络编程分为3个层次:面向应用层的URL类、面向IP层的InetAddress类和面向TCP协议的Socket类。 通过URL类编程,Java程序可以直接送出或读入网络上的数据。在Java的网络类库中,.URL类和.URLConnection类使编程员很方便地利用URL在Internet上进行网络通信。,协议名:/资源名,协议:/主机域名(或IP地址)/端口号/目录文件名/HTML参考点,(1)创建URL类的对象:创建URL类的构造方法有以下4种。 URL(String s1,String s2,int po

11、rt,String s3) 其中,参数s1是协议的类型,例如,http、ftp、file等;参数s2是主机名;参数port是指定端口号;参数s3是文件名或路径名。 URL(String s1,String s2,String s3) 其中,参数含义与第一种构造方法的相同,只是没有指定的端口号,而是使用默认端口号。 URL(URL url,String s) 其中,参数url为已经创建的URL类对象,参数s是相对路径。 URL(String s) 使用URL字符串构造一个URL类对象。 当创建URL类的对象时,如果发生错误,系统会产生异常MalformedURLException,必须在程序中使

12、用异常处理方法进行处理。例如,下面的语句创建了2个URL类对象,URL url1,url2; try url1=new URL(“http:/ url2=new URL(url1,“myText.txt“); catch(MalformedURLException e),(2)URL类的方法:一个URL对象生成后,其属性是不能被改变的,但可以通过URL类的方法来获取这些属性。下面这些方法的返回值均为String类型。 getProtocol()方法:返回URL类对象的协议名。 getHost()方法:返回URL类对象的主机名。 getPort()方法:返回URL类对象的端口号。 getPath

13、()方法:返回URL类对象的文件路径。 getFile()方法:返回URL类对象的文件名。 getRef()方法:返回URL类对象在文件中的相对位置。 getQuery()方法:返回URL类对象的查询名。 toExternalForm()方法:返回代表URL类对象的字符串。 3InetAddress编程 InetAddress类可以用于标识网络上的硬件资源,它提供了一系列方法以描述、获取及使用网络资源。每个InetAddress对象包含了IP地址、主机名等信息。InetAddress类没有构造方法,因此不能用new来构造一个InetAddress类对象。通常是用类中的静态方法来获取信息。常用的

14、静态方法有以下3个。,InetAddress getByName(String host)方法:返回host所代表的网址的IP地址。host可以是计算机名,也可以是IP地址或DSN域名。 InetAddress getLocalHost()方法:返回本机IP地址。 InetAddress getAllByName(String host)方法:返回所有host代表的网址的IP地址。 以上3个方法通常会产生UnknownHostException异常,应在程序中捕获处理。 InetAddress类的常用实例方法有以下3个。 getAddress()方法:返回调用该方法对象的Internert地址

15、。返回值为以网络字节为顺序的byte类型数组,该数组共有4个元素。 getHostAddress()方法:返回与InetAddress对象相关的主机地址的字符串。 getHostName()方法:返回与InetAddress对象相关的主机名的字符串。 4Socket类和ServerSocket类 Socket通信属于网络底层通信。Socket最先应用于Unix操作系统,如果了解Unix系统的输入/输出(I/O),就很容易掌握Socket,因为Socket数据传输其实就是一种特殊的I/O。 Socket是网络上运行的两个程序间双向通讯的一端。它既可以接受请求,也可以发送请求,利用它可以很方便地进

16、行网络数据传递。,在Java语言中,可以将Socket类和ServerSocket类分别用于客户端和服务器端,在任意两台机器间建立连接。这两个类都保存在包中,所以在使用前要先导入包。此外,在创建socket时如果发生错误,将产生IOException类异常,因此在程序中必须处理创建Socket类对象或ServerSocket类对象时有可能产生的异常。 (1)Socket类:通常一个Socket类对象由一个IP地址和一个端口号来确定。常用的Socket类构造方法有以下2种。 其中,参数address、host和port分别是双向连接中另一方的IP地址、主机名和端口号。 例如: 在构造完Socket类之后,就可以通过Socket类来创建输入输出流,然后通过流来传送数据了。Socekt类中有两个常用方法:一个是getInputStream()方法,用来获取一个输入流,客户端的Socket对象获取的输入流

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号