[计算机软件及应用]java网络通信

上传人:繁星 文档编号:88333379 上传时间:2019-04-24 格式:PPT 页数:62 大小:228.50KB
返回 下载 相关 举报
[计算机软件及应用]java网络通信_第1页
第1页 / 共62页
[计算机软件及应用]java网络通信_第2页
第2页 / 共62页
[计算机软件及应用]java网络通信_第3页
第3页 / 共62页
[计算机软件及应用]java网络通信_第4页
第4页 / 共62页
[计算机软件及应用]java网络通信_第5页
第5页 / 共62页
点击查看更多>>
资源描述

《[计算机软件及应用]java网络通信》由会员分享,可在线阅读,更多相关《[计算机软件及应用]java网络通信(62页珍藏版)》请在金锄头文库上搜索。

1、第十讲 网络通信,1、网络基本概念 2、Java与Internet 3、使用InetAddress 4、使用URL 5、Socket通信 6、数据报通信,TCP/IP(Transmission Control Protocol传输控制协议/Internet Protocol网间协议)是Internet的主要协议,定义了计算机和外设进行通信所使用的规则。TCP/IP网络参考模型包括五个层次:应用层、传输层、网络层、链路层、物理层。 ISO/OSI网络参考模型则包括七个层次:应用层、表示层、会话层、传输层、网络层、链路层、物理层。,1、网络基本概念,物理层,大多数基于Internet的应用程序被看

2、作TCP/IP网络的最上层应用层, 如:ftp,http,smtp,pop3,telnet,nntp等。 网络层对TCP/IP网络中的硬件资源进行标识。连接到TCP/IP网络中的每台计算机(或其他设备)都有唯一的地址,这就是IP地址。IP地址实质上是一个32位的整数,通常以“%d.%d.%d.%d”的形式表示,每个d是一个8位整数。 在TCP/IP网络中,不同的机器之间进行通信时,数据的传输是由传输层控制的,这包括数据要发往的目标机器及应用程序、数据的质量控制等。 TCP/IP网络中最常用的传输协议就是TCP(Transport Control Protocol)和UDP(User Datag

3、ram Protocol)。,1、网络基本概念,一台机器通常只通过一条链路连接到网络上,即它只有一个IP地址,但一台机器中往往有很多应用程序需要进行网络通信,如何区分呢?这就要靠网络端口号(port)了。 端口号是一个标记机器的逻辑通信信道的正整数,端口号不是物理实体。IP地址和端口号组成了所谓的Socket,Socket是网络上运行的程序之间双向通信链路的最后终结点,它是TCP和UDP的基础。,IP与端口号组合而得出的Socket,可以完全分辨Internet上运行的程序。,1、网络基本概念,端口号是用一个16位的整数来表达的,其范围为065535,其中01023为系统所保留,专门给那些通用

4、的服务(well-known services),如http服务的端口号为80,telnet服务的端口号为21,ftp服务的端口为23,因此,当我们编写通信程序时,应选择一个大于1023的数作为端口号,以免发生冲突。,1、网络基本概念,传输层通常以TCP和UDP协议来控制端点到端点的通信。用于通信的端点是由Socket来定义的,Socket是由IP地址和端口号组成的。 传输控制协议(TCP)是在端点与端点之间建立持续的连接而进行通信。建立连接后,发送端将发送的数据印记了序列号和错误检测代码,并以字节流的方式发送出去;接收端则对数据进行错误检查并按序列顺序将数据整理好,数据在需要时可以重新发送,

5、因此整个字节流到达接收端时完好无缺。这与两个人打电话的情形是相似的。 TCP协议具有可靠性和有序性,并且以字节流的方式发送数据,它通常被称为流通信协议。,1、网络基本概念,与TCP协议不同,用户数据报协议(UDP)则是一种无连接的传输协议。利用UDP协议进行数据传输时,首先需要将要传输的数据定义成数据报(Datagram),在数据报中指明数据所要达到的端点(Socket,主机地址和端口号),然后再将数据报发送出去。这种传输方式是无序的,也不能确保绝对的安全可靠,但它很简单也具有比较高的效率,这与通过邮局发送邮件的情形非常相似。,1、网络基本概念,1、网络基本概念,TCP协议和UDP协议各有各的

6、用处。当对所传输的数据具有时序性和可靠性等要求时,应使用TCP协议;当传输的数据比较简单、对时序等无要求时,UDP协议能发挥更好的作用,如ping、发送时间数据等。,1、网络基本概念,2、Java与Internet Java中的网络通信,网络应用是Java语言取得成功的领域之一,它已经成为现在Internet上最流行的一种编程语言。Java语言在网络编程方面提供了许多方便,其他语言往往需要数页代码才能完成的事情,在Java中可能只需要一条语句就可以。 Java的网络通信分为三个层次: 最高一级的网络通信就是我们上一讲中所涉及到的从网络上下载Applet。客户端浏览器通过HTML文件中的标记来识

7、别Applet,并解析Applet的属性,通过网络获取Applet得字节码文件。(由浏览器提供) 上一讲中所涉及到的声音播放和图象显示,其中声音文件和图象文件的获取是次一级的通信。通过类URL的对象指明文件所在位置,并从网络上下载声音和图象文件。(由Java开发环境提供) 最低一级的通信是利用包中提供的类直接在程序中实现网络通信。(由Java语言开发包提供),2、Java与Internet Java中的网络支持,针对网络通信的不同层次,Java提供的网络功能有四大类:InetAddress 、URLs、Sockets、Datagram。 InetAddress面向的是网络层(IP层),用于标识

8、网络上的硬件资源。 URL面向的应用层,通过URL,Java程序可以直接送出或读入网络上的数据。 Sockets和Datagram面向的则是传输层。Sockets使用的是TCP协议,这是传统网络程序最常用的方式,可以想象为两个不同的程序通过网络的通信信道进行通信。Datagram则使用UDP协议,是另一种网络传输方式,它把数据的目的地纪录在数据包中,然后直接放在网络上。,2、Java与Internet Java中的网络支持,包中的主要的类和可能产生的例外包括: 面向IP层的类:InetAddress (Inet4Address,Inet6Address) 面向应用层的类:URL、URLConn

9、ection 面向网络层的类: TCP协议相关类:Socket、ServerSocket UDP协议相关类:DatagramPacket、DatagramSocket、MulticastSocket 可能产生的例外: BindException、ConnectException、MalformedURLException、NoRouteToHostException、ProtocolException、SocketException、UnknownHostException、UnknownServiceException,类InetAddress可以用于标识网络上的硬件资源,它提供了一系列方法

10、以描述、获取及使用网络资源。 InetAddress类没有构造函数,因此不能用new来构造一个InetAddress实例。通常是用它提供的静态方法来获取: public static InetAddress getByName(String host) :host可以是一个机器名,也可以是一个形如“%d.%d.%d.%d”的IP地址或一个DSN域名。 public static InetAddress getLocalHost() public static InetAddress getAllByName(String host) public static InetAddress getB

11、yAddress(String host, Byte addr) 这些方法通常会产生UnknownHostException例外,应在程序中捕获处理。 以下是InetAddress类的几个主要方法,通过上述方法获得InetAddress类的实例后就可以使用: public byte getAddress():获得本对象的IP地址(存放在字节数组中)。 public String getHostAddress():获得本对象的IP地址“%d.%d.%d.%d”。 public String getHostName():获得本对象的机器名。,3、使用InetAddress,下面的例子演示Java如

12、何根据域名自动到DNS(域名服务器)上查找IP地址(与DNS服务器的连接减至一行): public class getIP public static void main(String args) InetAddress pku = null; try pku = InetAddress.getByName(“”); catch(UnknownHostException e) System.out.println(pku); ,3、使用InetAddress,getIP.java,通过InetAddress,可以获取本机的IP地址: public class getLocalHostTest

13、public static void main() InetAddress myIP = null; try myIP = InetAddress.getLocalHost(); catch(UnknownHostException e) System.out.println(myIP); ,3、使用InetAddress,getLocalHostTest.java,4、使用URL,URL是统一资源定位符(Uniform Resource Locator)的简称,它表示Internet上某一资源的地址。Internet上的资源包括HTML文件、图象文件、声音文件、动画文件以及其他任何内容(并不

14、完全是文件,也可以是一个对数据库的查询等)。 通过URL,就可以访问Internet。浏览器或其他程序通过解析给定的URL就可以在网络上查找相应的文件或其他资源。,4、使用URL,一个URL包括两部分内容:协议名称和资源名称,中间用冒号隔开: Protocol:resourceName 如:http:/ 协议名称指的是获取资源时所使用的应用层协议,如http,ftp,file等;资源名称则是资源的完整地址,包括主机名、端口号、文件名或文件内部的一个应用。当然,并不是所有的URL都必须包含这些内容。 http:/ http:/ ftp:/ http:/:8080/java/network.htm

15、l#UDP,4、使用URL 在Java中构造URL,在包中,提供了类URL来表示URL。类URL提供了很多构造方法来生成一个URL对象: public URL(String spec) public URL(URL context, String spec) public URL(String protocol, String host, String file) public URL(String protocol, String host, int port, String file) 以下是一些具体的构造实例: URL url1 = new URL(“http:/ URL base = new URL(“http:/”); URL url2 = new URL(base, “mywork1.html”); URL url3 = new URL(base, “mywork2.html”); URL url4 = new URL(“http”, “”,“/lyw/test.html”); URL url5 = new URL(“http”, “”, 8080, “/java/network.html”); 另外还有两

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 工作范文

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