第8章Java网络编程基础课件.ppt
《第8章Java网络编程基础课件.ppt》由会员分享,可在线阅读,更多相关《第8章Java网络编程基础课件.ppt(19页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第第8章章 Java网络编程基础网络编程基础 u 8.1【案例【案例24】获取】获取IP地址地址u 8.2【案例【案例25】网络聊天工具】网络聊天工具u 8.1【案例【案例24】获取】获取IP地址地址1计算机网络基础知识计算机网络基础知识(1)什么是)什么是Internet:因特网(:因特网(Internet)是目前世界上最大的计算机网络,)是目前世界上最大的计算机网络,更确切的说它是一个互连的网络,几乎覆盖了整个世界范围。最初组建这个更确切的说它是一个互连的网络,几乎覆盖了整个世界范围。最初组建这个网络的目的是为方便世界各地的研究部门和大学的研究者及其学生探讨学术网络的目的是为方便世界各地的
2、研究部门和大学的研究者及其学生探讨学术方面的问题,因此也可以称之为科研教育网或国际学术网。方面的问题,因此也可以称之为科研教育网或国际学术网。20世纪世纪90年代后,年代后,因特网开始向社会开放,利用该网络开展商贸活动成为热门话题。大量人力因特网开始向社会开放,利用该网络开展商贸活动成为热门话题。大量人力和财力的投入,使得因特网得到迅速的发展。许多企业也逐步意识到进入因和财力的投入,使得因特网得到迅速的发展。许多企业也逐步意识到进入因特网的重要性,不仅可以从网上索取大量的商业信息,更可以通过因特网向特网的重要性,不仅可以从网上索取大量的商业信息,更可以通过因特网向国际社会展现和推销自己。国际社
3、会展现和推销自己。单纯的把单纯的把Internet看成是一个计算机网络,或者是相互连接的计算机网络群,看成是一个计算机网络,或者是相互连接的计算机网络群,都不是十分正确的。根据当今的观点,计算机网络只是一个提供了简单的传都不是十分正确的。根据当今的观点,计算机网络只是一个提供了简单的传载信息的媒体,而载信息的媒体,而Internet的优越性和实用性则在于信息而不是网络。的优越性和实用性则在于信息而不是网络。Internet采用一种唯一通用的地址格式,为采用一种唯一通用的地址格式,为Internet中的每一个网络和几乎每中的每一个网络和几乎每一台主机都分配了一个地址,就像一个实实在在的整体。一台
4、主机都分配了一个地址,就像一个实实在在的整体。Internet中地址类型中地址类型有有IP地址和域名地址两种。地址和域名地址两种。IP地址是连接在地址是连接在Internet上的每台计算机都有的一个唯一的地址。发送方计算上的每台计算机都有的一个唯一的地址。发送方计算机在通信之前必须知道接收方计算机的地址。这和日常邮寄普通信件是一样机在通信之前必须知道接收方计算机的地址。这和日常邮寄普通信件是一样的道理。只是的道理。只是Internet上使用的地址称为上使用的地址称为Internet地址,简称地址,简称IP地址。它是四地址。它是四个以小数点隔开的十进制整数,每个整数的范围是个以小数点隔开的十进制
5、整数,每个整数的范围是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适用于大型网络适用于大型网
6、络B类(类(B Class):):128.0.0.0191.255.255.255适用于中型网络适用于中型网络C类(类(C Class):):192.0.0.0223.255.255.255适用于小型网络适用于小型网络D类和类和E类:保留作特殊用途。类:保留作特殊用途。域名抵制由于域名抵制由于IP地址是数字型的,不方便记忆,也难以理解,所以地址是数字型的,不方便记忆,也难以理解,所以Internet采采用了另一套字符的地址方案,即域名地址。它是用具有一定意义的字符串来用了另一套字符的地址方案,即域名地址。它是用具有一定意义的字符串来标识主机地址,标识主机地址,IP与域名地址两者相互对应,而且保
7、持全网统一。在网络中,与域名地址两者相互对应,而且保持全网统一。在网络中,一台主机的一台主机的IP地址是唯一的,即每台主机只能有一个地址是唯一的,即每台主机只能有一个IP地址,但它的域名数地址,但它的域名数却可以有多个。却可以有多个。第一级域名往往表示主机所属的国家、地区或网络性质的代码,如中国是第一级域名往往表示主机所属的国家、地区或网络性质的代码,如中国是cn、英国是英国是uk、商业组织的代码则是、商业组织的代码则是com等。第二、三级是子域名,第四级是主等。第二、三级是子域名,第四级是主机名。机名。在中国,一级域名为在中国,一级域名为cn,二级域名有:教育,二级域名有:教育edu、电信网
8、、电信网net、科研网、科研网ca、团、团体体or、政府、政府go、商业、商业co、军队、军队mi等。各省则采用其拼音缩写,如等。各省则采用其拼音缩写,如bj代表北京,代表北京,sh代表上海,代表上海,ah则代表安徽。则代表安徽。由于由于Internet主要是在美国发展壮大的,所以美国的主机其第一级域名一般直主要是在美国发展壮大的,所以美国的主机其第一级域名一般直接说明其主机性质,而不是国家代码。如果用户看到某主机的第一级域名为接说明其主机性质,而不是国家代码。如果用户看到某主机的第一级域名为com、edu、gov等,一般可以判断这台主机置于美国。因为其他国家第一级等,一般可以判断这台主机置于
9、美国。因为其他国家第一级域名一般是其国家的代码。域名一般是其国家的代码。(2)TCP/IP协议:协议:TCP/IP是是Transmission Control Protocol/Internet Protocol的简写,中文译名为传输控制协议的简写,中文译名为传输控制协议/互联网络协议,是互联网络协议,是Internet最基本的最基本的协议,简单地说,就是由底层的协议,简单地说,就是由底层的IP协议和协议和TCP协议组成的。协议组成的。TCP/IP协议的开发工协议的开发工作始于作始于20世纪世纪70年代,是用于互联网的第一套协议。年代,是用于互联网的第一套协议。IP协议是因特网中的基础协议,由
10、协议是因特网中的基础协议,由IP协议控制传输的协议单元称为协议控制传输的协议单元称为IP数据报。数据报。IP数据报中含有发数据报中含有发/收方的收方的IP地址。地址。IP提供不可靠的、尽力的、无连接的数据报投递提供不可靠的、尽力的、无连接的数据报投递服务,构成了因特网数据传输的基础;以此为基础,服务,构成了因特网数据传输的基础;以此为基础,TCP协议软件增加了确认协议软件增加了确认重发、滑动窗口和复用重发、滑动窗口和复用/解复用等机制,提供面向连接的、可靠的、流投递服务。解复用等机制,提供面向连接的、可靠的、流投递服务。Internet没有形成之前,各个地方已经建立了很多小型的网络,称为局域网
11、,没有形成之前,各个地方已经建立了很多小型的网络,称为局域网,Internet的中文意义是的中文意义是“网际网网际网”,它实际上就是将全球各地的局域网连接起来,它实际上就是将全球各地的局域网连接起来而形成的一个而形成的一个“网之间的网(即网际网)网之间的网(即网际网)”。然而,在连接之前的各式各样的局。然而,在连接之前的各式各样的局域网却存在不同的网络结构和数据传输规则,将这些小网连接起来后各网之间要域网却存在不同的网络结构和数据传输规则,将这些小网连接起来后各网之间要通过什么样的规则来传输数据呢?这就象世界上有很多个国家,各个国家的人说通过什么样的规则来传输数据呢?这就象世界上有很多个国家,
12、各个国家的人说各自的语言,世界上任意两个人要怎样才能互相沟通呢?如果全世界的人都能够各自的语言,世界上任意两个人要怎样才能互相沟通呢?如果全世界的人都能够说同一种语言(即世界语),这个问题不就解决了吗?说同一种语言(即世界语),这个问题不就解决了吗?TCP/IP协议正是协议正是Internet上的上的“世界语世界语”。(3)通信端口:一般来说,一台计算机只通过一条线路连接到网络上。但是,)通信端口:一般来说,一台计算机只通过一条线路连接到网络上。但是,一台计算机中往往有很多应用程序需要进行网络通信。那么网络如何进行区分呢?一台计算机中往往有很多应用程序需要进行网络通信。那么网络如何进行区分呢?
13、使用网络端口号(使用网络端口号(port)可以解决这个问题。端口号是一个标记计算机逻辑通信)可以解决这个问题。端口号是一个标记计算机逻辑通信信道的正整数,端口号不是物理实体。信道的正整数,端口号不是物理实体。IP地址和端口号组成了所谓的地址和端口号组成了所谓的Socket,Socket是网络上运行的程序之间双向通信链路的最后终结点,它是是网络上运行的程序之间双向通信链路的最后终结点,它是TCP和和UDP协协议的基础。议的基础。IP协议使用协议使用IP地址使数据投递到正确的计算机上,地址使数据投递到正确的计算机上,TCP和和UDP协议使用端口号将协议使用端口号将数据投递给正确的应用程序。数据投递
14、给正确的应用程序。端口号是用一个端口号是用一个16位的整数来表达的,其范围为位的整数来表达的,其范围为065535,其中,其中01023为系统为系统所保留,专门用于那些通用的服务。例如,所保留,专门用于那些通用的服务。例如,http服务的端口号为服务的端口号为80,telnet服务服务的端口号为的端口号为21,ftp服务的端口为服务的端口为23等。因此,在编写网络通信程序时,应当选择等。因此,在编写网络通信程序时,应当选择一个大于一个大于1023的数作为端口号,以免发生冲突。的数作为端口号,以免发生冲突。(4)URL:URL是统一资源定位符(是统一资源定位符(Uniform Resource
15、Locator)的简称,它)的简称,它表示表示Internet上某一资源的地址。上某一资源的地址。Internet上的资源包括上的资源包括HTML文件、图像文件、文件、图像文件、声音文件、动画文件以及其他任何内容(并不完全是文件,也可以是一个对数据声音文件、动画文件以及其他任何内容(并不完全是文件,也可以是一个对数据库的查询等)。通过库的查询等)。通过URL就可以访问就可以访问Internet。浏览器或其他程序通过解析给定。浏览器或其他程序通过解析给定的的URL,就可以在网络上查找相应的文件或其他资源。,就可以在网络上查找相应的文件或其他资源。一个一个URL包括协议名称和资源名称两部分内容,中
16、间用冒号隔开,其格式如包括协议名称和资源名称两部分内容,中间用冒号隔开,其格式如下。下。例如,例如,http:/协议名称指的就是获取资源时所使用的应用层协议,如协议名称指的就是获取资源时所使用的应用层协议,如http,ftp,file等;资等;资源名称则是资源的完整地址,包括主机名、端口号、文件名或文件内部的一源名称则是资源的完整地址,包括主机名、端口号、文件名或文件内部的一个引用。当然,并不是所有的个引用。当然,并不是所有的URL都必须包含这些内容。都必须包含这些内容。一个完整一个完整URL的格式如下。的格式如下。2使用使用URL类编程类编程Java语言的网络编程分为语言的网络编程分为3个层
17、次:面向应用层的个层次:面向应用层的URL类、面向类、面向IP层的层的InetAddress类和面向类和面向TCP协议的协议的Socket类。类。通过通过URL类编程,类编程,Java程序可以直接送出或读入网络上的数据。在程序可以直接送出或读入网络上的数据。在Java的网的网络类库中,络类库中,.URL类和类和.URLConnection类使编程员很方便地类使编程员很方便地利用利用URL在在Internet上进行网络通信。上进行网络通信。协议名协议名:/资源名资源名协议协议:/主机域名(或主机域名(或IP地址)地址)/端口号端口号/目录文件名目录文件名/HTML参考点参考点(1)创建)创建UR
18、L类的对象:创建类的对象:创建URL类的构造方法有以下类的构造方法有以下4种。种。URL(String s1,String s2,int port,String s3)其中,参数其中,参数s1是协议的类型,例如,是协议的类型,例如,http、ftp、file等;参数等;参数s2是主机名;参数是主机名;参数port是指定端口号;参数是指定端口号;参数s3是文件名或路径名。是文件名或路径名。URL(String s1,String s2,String s3)其中,参数含义与第一种构造方法的相同,只是没有指定的端口号,而是使用默其中,参数含义与第一种构造方法的相同,只是没有指定的端口号,而是使用默认
19、端口号。认端口号。URL(URL url,String s)其中,参数其中,参数url为已经创建的为已经创建的URL类对象,参数类对象,参数s是相对路径。是相对路径。URL(String s)使用使用URL字符串构造一个字符串构造一个URL类对象。类对象。当创建当创建URL类的对象时,如果发生错误,系统会产生异常类的对象时,如果发生错误,系统会产生异常MalformedURLException,必须在程序中使用异常处理方法进行处理。例如,必须在程序中使用异常处理方法进行处理。例如,下面的语句创建了下面的语句创建了2个个URL类对象类对象 URL url1,url2;try url1=new U
20、RL(http:/ url2=new URL(url1,myText.txt);catch(MalformedURLException e)(2)URL类的方法:一个类的方法:一个URL对象生成后,其属性是不能被改变的,但可以对象生成后,其属性是不能被改变的,但可以通过通过URL类的方法来获取这些属性。下面这些方法的返回值均为类的方法来获取这些属性。下面这些方法的返回值均为String类型。类型。getProtocol()方法:返回方法:返回URL类对象的协议名。类对象的协议名。getHost()方法:返回方法:返回URL类对象的主机名。类对象的主机名。getPort()方法:返回方法:返回U
21、RL类对象的端口号。类对象的端口号。getPath()方法:返回方法:返回URL类对象的文件路径。类对象的文件路径。getFile()方法:返回方法:返回URL类对象的文件名。类对象的文件名。getRef()方法:返回方法:返回URL类对象在文件中的相对位置。类对象在文件中的相对位置。getQuery()方法:返回方法:返回URL类对象的查询名。类对象的查询名。toExternalForm()方法:返回代表方法:返回代表URL类对象的字符串。类对象的字符串。3InetAddress编程编程InetAddress类可以用于标识网络上的硬件资源,它提供了一系列方法以描述、类可以用于标识网络上的硬件
22、资源,它提供了一系列方法以描述、获取及使用网络资源。每个获取及使用网络资源。每个InetAddress对象包含了对象包含了IP地址、主机名等信息。地址、主机名等信息。InetAddress类没有构造方法,因此不能用类没有构造方法,因此不能用new来构造一个来构造一个InetAddress类对类对象。通常是用类中的静态方法来获取信息。常用的静态方法有以下象。通常是用类中的静态方法来获取信息。常用的静态方法有以下3个。个。InetAddress getByName(String host)方法:返回方法:返回host所代表的网址的所代表的网址的IP地地址。址。host可以是计算机名,也可以是可以是
23、计算机名,也可以是IP地址或地址或DSN域名。域名。InetAddress getLocalHost()方法:返回本机方法:返回本机IP地址。地址。InetAddress getAllByName(String host)方法:返回所有方法:返回所有host代表的网址代表的网址的的IP地址。地址。以上以上3个方法通常会产生个方法通常会产生UnknownHostException异常,应在程序中捕获处异常,应在程序中捕获处理。理。InetAddress类的常用实例方法有以下类的常用实例方法有以下3个。个。getAddress()方法:返回调用该方法对象的方法:返回调用该方法对象的Interner
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第8章 Java网络编程基础课件 Java 网络 编程 基础 课件
限制150内