Java程序设计 教学课件 ppt 作者 陈锐 第15章 Java网络编程

上传人:E**** 文档编号:89156129 上传时间:2019-05-19 格式:PPT 页数:37 大小:242.01KB
返回 下载 相关 举报
Java程序设计 教学课件 ppt 作者 陈锐 第15章 Java网络编程_第1页
第1页 / 共37页
Java程序设计 教学课件 ppt 作者 陈锐 第15章 Java网络编程_第2页
第2页 / 共37页
Java程序设计 教学课件 ppt 作者 陈锐 第15章 Java网络编程_第3页
第3页 / 共37页
Java程序设计 教学课件 ppt 作者 陈锐 第15章 Java网络编程_第4页
第4页 / 共37页
Java程序设计 教学课件 ppt 作者 陈锐 第15章 Java网络编程_第5页
第5页 / 共37页
点击查看更多>>
资源描述

《Java程序设计 教学课件 ppt 作者 陈锐 第15章 Java网络编程》由会员分享,可在线阅读,更多相关《Java程序设计 教学课件 ppt 作者 陈锐 第15章 Java网络编程(37页珍藏版)》请在金锄头文库上搜索。

1、第十五章 Java网络编程,15.1 网络编程的基本概念 15.2 基于URL的Java网络编程 15.3 基于套接字的Java网络编程 15.4 数据报,第15章 Java网络编程,15.1 网络编程的基本概念,Java语言的网络功能是由类库中的包实现的。它通过扩充I/O流来支持TCP/IP协议,同时它提供对其他协议的支持,如FTP,HTTP和WWW等。,15.1.1 网络基础知识,计算机网络形式多样,内容繁杂。网络上的计算机要互相通信,必须遵循一定的协议。目前使用最广泛的网络协议是Internet上所使用的TCP/IP协议。 TCP/IP协议即传输控制协议/互联网络协议(Transmiss

2、ion Control Protocol/Internet Protocol),它是Internet最基本的协议,简单地说,就是由底层的IP协议和TCP协议组成的。,15.1.1 网络基础知识,网络编程的目的就是指直接或间接地通过网络协议与其他计算机进行通信。网络编程中有两个主要的问题,一个是如何准确的定位网络上一台或多台主机,另一个就是找到主机后如何可靠、高效地进行数据传输。,15.1.1 网络基础知识,目前较为流行的网络编程模型是客户机/服务器(C/S)结构。即通信双方一方作为服务器等待客户提出请求并予以响应。客户则在需要服务时向服务器提出申请。服务器一般作为守护进程始终运行,监听网络端口

3、,一旦有客户请求,就会启动一个服务进程来响应该客户,同时自己继续监听服务端口,使后来的客户也能及时得到服务。,15.1.2 网络基本概念,IP地址:即给每个连接在Internet上的主机分配一个在全世界范围唯一的32bit地址。IP地址的结构使我们可以在Internet上很方便地寻址。IP地址通常用更直观的、以圆点分隔号的4个十进制数字表示,每一个数字对应于8个二进制的比特串。 例如,北京大学的域名是,对应的IP地址为:162.105.129.30。,15.1.2 网络基本概念,主机名(HostName):网络地址的助记名,按照域名进行分级管理。例如: 洪恩主页为 新浪主页为 端口号(Port

4、 Number):网络通信时同一机器上的不同进程的标识。例如: 80,21,23,25,其中11024为系统保留的端口号。,15.1.2 网络基本概念,服务类型(Service):网络的各种服务。例如:超文本传输协议(HTTP),文件传输协议(FTP),远程登录(Telnet),简单邮件传输协议(SMTP)。 为了更加形象地表示以上几个概念,我们可以用如图15-1所示来描述:,15.1.2 网络基本概念,通常一台主机上总是有很多个进程需要网络资源进行网络通信。网络通信的对象准确地讲不是主机,而应该是主机中运行的进程。这时候光有主机名或IP地址来标识这么多个进程显然是不够的。端口号就是为了在一台

5、主机上提供更多的网络资源而采取的一种手段,也是TCP层提供的一种机制。只有通过主机名或IP地址和端口号的组合才能唯一地确定网络通信中的对象进程。,15.1.2 网络基本概念,服务类型是在TCP层上面的应用层的概念。基于TCP/IP协议可以构建出各种复杂的应用,服务类型是那些已经被标准化了的应用,一般都是网络服务器(软件)。读者可以编写自己的基于网络的服务器,但都不能被称作标准的服务类型。,15.2 基于URL的Java网络编程,Internet资源类型(scheme):指出WWW客户程序用来操作的工具。如“http:/”表示WWW服务器,“ftp:/”表示FTP服务器,“gopher:/”表示

6、Gopher服务器,而“new:”表示Newgroup新闻组。 服务器地址(host):指出WWW页所在的服务器域名。 端口(port):对某些资源的访问来说,需给出相应的服务器提供端口号。 路径(path):指明服务器上某资源的位置(其格式与DOS系统中的格式一样,通常有目录/子目录/文件名这样结构组成)。与端口一样,路径并非总是需要的。,15.2.1 URL类,为了使用URL进行通信,中实现了URL类。我们可以通过下面的构造方法来初始化一个URL对象: public URL(String spec); 该方法通过一个表示URL地址的字符串可以构造一个URL对象。例如: URL myurl=

7、new URL(“http:/ URL类,public URL(String protocol, String host, String file); 这个构造方法中制定了协议名“protocol”、主机名“host”、文件名“file”,端口使用缺省值。例如: URL myurl=new URL(“http“, ““, “/pages/index.html“);,15.2.1 URL类,public URL(URL context, String spec); 该方法通过基URL和相对URL构造一个URL对象。例如: URL myurl=new URL(“http:/ URL myurl_n

8、ew=new URL(myurl, “index.html“),15.2.1 URL类,public URL(String protocol, String host, int port, String file); 该构造方法与(2)构造方法比较中多了一个端口号“port”,例如: URL gamelan=new URL(“http“, ““, 80, “Pages/Gwork.html“); 注意:类URL的构造方法都声明抛弃非运行时例外(MalformedURLException),因此生成URL对象时,必须要对这一例外进行处理,通常用try-catch语句进行捕获。,15.2.1 UR

9、L类,一个URL对象生成后,其属性是不能被改变的,但是我们可以通过类URL所提供的方法来获取这些属性: public String getProtocol() 获取该URL的协议名。 public String getHost() 获取该URL的主机名。 public int getPort() 获取该URL的端口号,如果没有设置端口,返回-1。 public String getFile() 获取该URL的文件名。 public String getRef() 获取该URL在文件中的相对位置。,15.2.1 URL类,public String getQuery() 获取该URL的查询信息。

10、 public String getPath() 获取该URL的路径。 public String getAuthority() 获取该URL的权限信息。 public String getUserInfo() 获得使用者的信息。 public String getRef() 获得该URL的锚。,15.2.2 URLConnetction类,通过URL的方法openStream(),我们只能从网络上读取数据,如果我们同时还想输出数据,例如向服务器端的CGI程序发送一些数据,我们必须先与URL建立连接,然后才能对其进行读写,这时就要用到URLConnection类了。CGI是公共网关接口(Com

11、mon Gateway Interface)的简称,它是用户浏览器和服务器端的应用程序进行连接的接口。 URLConnection类也在包中定义,它表示Java程序和URL在网络上的通信连接。当与一个URL建立连接时,首先要在一个URL对象上通过方法openConnection()生成对应的URLConnection对象。,15.2.2 URLConnetction类,例如下面的程序段首先生成一个指向地址http:/ x.html的对象,然后用openConnection()打开该URL对象上的一个连接,返回一个URLConnection对象。如果连接过程失败,将产生IOException。

12、Try URL netchinaren = new URL (“http:/ URLConnectonn tc = netchinaren.openConnection(); catch(MalformedURLException e) /创建URL()对象失败 catch (IOException e) /openConnection()失败 ,15.3 基于套接字的Java网络编程,网络上的两个程序通过一个双向的通信连接实现数据的交换,这个双向链路的一端称为一个套接字(Socket)。套接字通常用来实现客户方和服务方的连接。套接字是TCP/IP协议的一个十分流行的编程界面,一个套接字由一个

13、IP地址和一个端口号唯一确定。 在传统的UNIX环境下可以操作TCP/IP协议的接口不止套接字一个,套接字所支持的协议种类也不光TCP/IP一种,因此两者之间是没有必然联系的。在Java环境下,套接字编程主要是指基于TCP/IP协议的网络编程。,15.3 基于套接字的Java网络编程,Java在包中提供了两个类Socket和ServerSocket,分别用来表示双向连接的客户端和服务端。 客户端的Socket 客户端的程序使用Socket类建立服务器的套接字连接。Socket常用的构造方法如下:,15.3 基于套接字的Java网络编程,Socket(InetAddress address, i

14、nt port); Socket(InetAddress address, int port, boolean stream); Socket(String host, int prot); Socket(String host, int prot, boolean stream); Socket(SocketImpl impl); Socket(String host, int port, InetAddress localAddr, int localPort); Socket(InetAddress address, int port, InetAddress localAddr, in

15、t localPort);,15.3 基于套接字的Java网络编程,其中address、host和port分别是双向连接中另一方的IP地址、主机名和端口号,stream指明Socket是流Socket还是数据报Socket,localPort表示本地主机的端口号,localAddr和bindAddr是本地机器的地址(ServerSocket的主机地址),impl是Socket的父类,既可以用来创建ServerSocket,又可以用来创建Socket。count则表示服务端所能支持的最大连接数。,15.3 基于套接字的Java网络编程,当建立Socket时可能发生IOException异常,因此应像下面那样建立到服务器的套接字连接。例如: try Socket client = new Socket(“127.0.0.1“, 80); ServerSocket server = new ServerSocket(80); catch(IOException e) ,15.3 基于套接字的Java网络编程,服务器端的ServerSocket 我们已经知道客户负责建立客户到服务器的套接字连接,因此服务器必须建立一个等待接受客户的套接字的ServerSocket对象。ServerSocket的构造方法是: ServerSocket(int

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

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

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