第13章 Java网络编程

13.1URL类

URL类是java.net包中的一个重要的类,使用URL创建对象的应用程序称为客户端程序。一个URL对象封装着一个具体的资源的引用,表明客户要访问这个URL中的资源,客户利用URL对象可以获取URL中的资源。一个URL对象通常包含最基本的三部分信息:协议、地址和资源。协议必须是URL对象所在的Java虚拟机支持的协议,许多协议并不为我们所常用,而常用的Http、Ftp、File协议都是虚拟机支持的协议;地址必须是能连接的有效IP地址或域名;资源可以是主机上的任何一个文件。

 

13.1.1 URL的构造方法

URL类通常使用如下的构造方法创建一个URL对象: public URL( String spec) throws   MalformedDULException

13.1.2读取URL中的资源

URL对象调用InputStream openStream()方法可以返回一个输入流,该输入流指向URL对象所包含的资源。

13.2 InetAddress类

13.3套接字

13.3.2客户端套接字

客户端程序使用Socket类建立负责连接到服务器的套接字对象。

13.3.3SeverSocket对象与服务器端套接字

13.3.4使用多线程技术

可以用Socket类的不带参数的构造方法Socket()创建一个套接字对象,该对象再调用public void connect(SocketAddress endpoint)throws IOExpection请求和参数SocketAddress指定地址的服务器端的套接字建立连接。为了使用connect方法,可以使用SocketAddress的子类InerSocketAddress创建一个对象,InetSocketAddress的构造方法是public InetSocket Address(InetAddress addr,int port).

 13.4 UDP数据报

套接字是基于TCP协议的网络通信,即客户端程序和服务器端程序是有连接的,双方的信息是通过程序中的输入、输出流来交互的,使得接收方收到信息发送方发送信息的顺序完全相同,就像生活中双方使用电话进行信息交互一样。

本节介绍Java中基于UDP(用户数据报协议)协议的网络信息传输方式,基于UDP的通信和基于TCP的通信不同,基于UDP的信息传递更快,但不提供可靠性保证,也就是说数据在传输时,用户无法知道数据能否正确到达目的地主机,也不能确定数据到达目的地的顺序是否和发送的顺序相同,可以把UDP通信比作生活中的邮递信件,我们不能肯定所发的信件就一定能够到达目的地,也不能肯定到达的顺序是发出时的顺序,可能因为某种原因导放后发出的先到达,既然UDP是一种不可靠的协议,为什么还要使用它呢?如果要求数据必须绝对准确地到达目的地,显然不能选择UDP协议来通信,但有时候人们需要较快速地传输信息,并能容忍小的错误,就可以考虑使用UDP协议

基于UDP通信的基本模式是:

·将数据打包(好比将信件装入信封一样),称为数据包,然后将数据包发往目的地。

·接收发来的数据包(好比接收信封一样),然后查看数据包中的内容。

 13.6Java远程调用

Java远程调用( Remote Method Invocation,RM)是一种分布式技术,使用RM可以让一个虚拟机上的应用程序请求调用位于网络上另一处虚拟机上的对象。习惯上称发出调用请求的虚拟机为(本地)客户机,称接收并执行请求的虚拟机为(远程)服务器。