教学课件第16章Java网络技术

上传人:痛*** 文档编号:228109731 上传时间:2023-08-20 格式:PPT 页数:25 大小:282.50KB
返回 下载 相关 举报
教学课件第16章Java网络技术_第1页
第1页 / 共25页
教学课件第16章Java网络技术_第2页
第2页 / 共25页
教学课件第16章Java网络技术_第3页
第3页 / 共25页
点击查看更多>>
资源描述
第16章 Java网络技术Java作为种网络上的编程语言,提供了丰富的网络功能,这些功能都封装在包中。Java的网络功能大致可以分为两类:一种是利用URL(Uniform Resource Locator,统一资源定位器)来获取网络上的资源以及将自己的数据传送到网络的另一端;另一种是通过Socket(套接字)在客户机与服务器之间建立个连接通道,来进行数据的传输与通信,此功能通常用于面向连接的通讯;还有一种就是通过DataGram数据报将数据发送到网络上,这是一种面向无连接的通信方式。16.1 网络相关知识利用Java进行网络编程之前,要了解网络相关的知识,主要包括:IP地址、端口、客户机和服务器、面向连接和非连接以及协议等,这些知识的理解对于网络编程是非常重要的。16.1.1 IP地址处于电话网络中的电话机并不是处于无序的状态,它们都有一个电话号码,作为呼叫的标识。同样,互联网中无数的服务器和计算机也不是处于杂乱无章的无序状态的,网络上的每一个主机都有唯一的地址,作为该主机在互联网上的唯一标志,这个地址叫做IP地址。IP地址在计算机内部的表现形式是一个32位的二进制数,实际表现为一个四点格式的数据,由点号(.)将数据分为4个数字,比如:202.113.76.142,每个数字代表一个8位二进制数,总共32位,刚好是一个IP地址的位数。用四点格式来表示一个IP地址,记忆起来很不方便,而且很容易记错,为了便于记忆,Internet提供了一种域名服务,将IP地址与某个域名对应起来,这种域名就是通常所说的网址。16.1.2 端口通常,一台机器会提供多种服务,比如HTTP服务和FTP服务。通过IP地址只能标识机器的位置,并不能完整地标识一种服务,这就需要通过端口来确定。通常,某种服务对应某个协议,并同计算机上某个唯一的端口关联在一起,如图所示。16.1.3 客户机和服务器网络中的机器进行通信和交流时,通常有一个信息的提供者和一个信息的接收者,在网络上,通常将信息的提供者叫做服务器,将信息的接收者叫做客户机。客户机连接到服务器,向服务器发送消息请求,服务器则监听客户的请求,对请求进行处理,将请求结果返回给客户机,这样,就完成了客户机和服务器之间的交流。16.1.4 面向连接和非连接网络中有两种通信方式,一种是面向连接的通信,另种是面向非连接的通信。面向连接的通信要等客户机与服务器的连接建立成功后,才能开始通信。它是一种可靠的通讯方式,比较适合大量的数据传输以及即时信息交流。面向非连接的通信不需要连接的建立,类似发信一样,将信写好后投递到邮局就不管了,不管对方是否收到。面向非连接的通讯是一种不可靠的通讯方式。16.1.5 TCP/IP协议在网络上,计算机与计算机之间进行通信需要遵守一定的规则,这种规则称作协议。应用最广泛的协议是TCP/IP协议。TCP/IP协议主要包括:网络接口层、网络层、传输层和应用层,如图所示。16.2 URLURL(Uniform Resource Locator)是统一资源定位器的简称,表示Internet上的某一资源的地址。是Internet中对网络资源进行统一定位和管理的标识,利用URL就可以获得网络上的资源。16.2.1 URL构成下面是两个URL的例子。http:/:80/index.jsphttp:/ URL类Java将URL封装为一个URL类,URL类在 包中。通过URL类中提供的方法就可以很容易地获取网络上的资源。1构造URL对象2URL类的成员方法3获得网络上指定的资源Java程序使用URL的目的就是从网络上获得声音、图像、HTML文档及文件数据等资源,以便对资源进行处理。在编程处理上,一般先生成一个URL对象,然后用Java中相应的方法获得该URL对象所代表的资源。16.3 InetAddress类InetAddress类用于网络地址解析和编码,Java依靠此类来显示Internet地址及相关的信息。Internet类的常用方法如下。InetAddress getLocalhost():获得本地主机的IP地址。InetAddress getByName(String host):获得指定主机的IP地址。boolean equals(Object obj):判断两个IP地址是否相同。byte getAddress():取得IP地址。String getHostName():返回给定IP地址的主机名。String toString():将IP地址转换成字符串。16.4 基于TCP协议的Socket通信Socket(套接字)是实现客户机和服务器进行通信的一种机制。它可以接收请求,也可以发送请求。利用Socket可以方便地编写网络数据的传递。Java中分别提供了对TCP和UDP协议支持的类,利用这些类中提供的方法就可以实现网络上的通信了。16.4.1 理解Socket人们日常生活中相互联系时,最常用的方式是打电话,双方只要使用两部电话机就可以进行交谈。在计算机世界中,两个程序用什么来进行相互通信呢?这就是Socket。一个Socket好比一部电话机,两个程序在网络上通过一个双向的链路进行通信,这个双向链路的每一端称为一个Socket。网络中的Socket用于将应用程序与端口连接起来。实际上,套接字是一个软件的实现,可以认为是一个假想的连接装置,如图所示。16.4.2 Socket和ServerSocketJava在包中提供了两个类:Socket和ServerSocket,用来实现基于TCP协议的Socket通信。Socket类用来创建客户机Socket,ServerSocket用来创建服务器Socket。1客户机套接字SocketSocket构造方法2服务器套接字ServerSocketServerSocket构造方法创建ServerSocket对象有以下几种构造方法:ServerSocket(int port)ServerSocket(int port,int backlog)ServerSocket(int port,int backlog,InetAddress addr)16.4.3 Java网络通信模型Java网络通信模型如图所示,Java中网络通信的描述如下。16.4.4 一个基于TCP的C/S程序举例使用Socket进行通信,需要有客户机和服务器,客户机和服务器可以在同一台机器上,但客户机和服务器处理的信息及信息处理的方式是不同的。故分为客户机程序和服务器程序。该例中包括两个程序:服务器程序和客户机程序,服务器程序在2300端口监听,当有客户请求连接时,服务器接收请求并向客户机发送字符串:How are you?。此字符串显示在客户机控制台窗口中。1服务器程序2客户端程序16.5 基于UDP协议的Socket通信数据报通信方式用于建立一种非面向连接、传输数据到达目的地的顺序和时间不可靠的连接方式。在J包中,与数据报通信相关的类有两个:DatagramSocket和DatagramPacket。DatagramSocket和DatagramPacket类DatagramSocket类和DatagramPacket类相结合来完成基于UDP协议的通信。其中,DatagramSocket用于接收和发送数据报,DatagramPacket用于表示要进行通信的数据。1DatagramSocket类 DatagramSocket类构造方法DatagramSocket()DatagramSocket(int port)DatagramSocket(int port,inetAddress address)2DatagramPacket类 DatagramPacket构造方法/构造长度为length的接收数据包DatagramPacket(byte buf,int length)/构造向指定IP地址的主机指定端口发送长度为length的数据包DatagramPacket(byte buf,int length,InetAddress address)/构造向指定IP地址的主机指定端口发送长度为length的数据包,存储接收数据的偏移地址为offsetDatagramPacket(byte buf,int offset,int length,InetAddress address)16.5.2 基于UDP的C/S程序举例该例是使用DatagramSocket和DatagramPacket两个类来实现基于UDP协议的通信程序,服务器端程序UdpServer主要实现接收客户机的数据报,并获得客户机的地址和端口号,然后将系统的时间发送给客户机。客户端程序UdpClient发起请求,接收服务器发送的系统时间信息,并显示在控制台窗口中。16.6 支持多客户连接的Socket通信方式大多数情况下,网络通信经常需要多个客户机同一个服务器进行通信,如WWW、Ftp服务器都是同时接收多个客户访问的服务器。多客户机通信就是服务器的程序同时与多个客户机上的程序进行通信。16.6.1 支持多客户连接的Socket通信模型创建多客户连接的Socket通信方式是在服务器端创建客户连接请求的监听线程。一旦客户发起连接请求,则服务器创建用于与此客户通信的线程和Socket,服务器把与此客户的通信交给此线程处理。同时,继续在服务器指定端口进行监听,来响应其他客户的服务请求。实际上,在多客户机的通信模式下,每一个客户机和服务器中的线程可以认为是单客户通信模式下的客户机和服务器。一旦Socket和线程建立,服务器主程序会把与某个客户的通信完全交给线程去处理,并利用相应的Socket完成与客户的通信。通信结束后,关闭Socket并终止运行该Socket通信的线程。多客户机与服务器的通信模型见图所示。16.6.2 创建服务器线程服务器线程类SocketThread负责同客户机通信,并输出客户机发送的信息。16.6.3 服务器主程序类MultiServer是服务器应用程序主类,它完成监听客户请求,生成一个新线程,同客户机通信的任务。16.6.4 客户机程序类client是客户机程序主类,用来建立服务器的连接,并从控制台循环向服务器发送信息。当输入为bye时,程序终止。16.7 小结本章讲述了Java最基本的网络编程类库。借助这些基本类库,可以搭建各式各样的Java网络程序,比如浏览器,客户端,甚至服务器等。比较出名的Java内核服务器如BEA公司的WebLogic,IBM公司的WebSphere,Apache公司的Tomcat等都是用于Java网络编程的非常成功的产品。随着Java版的网络程序越来越多,Java编程所占的比重也会越来越大。
展开阅读全文
相关资源
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 成人自考


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!