html5-img
1 / 17

第 11 章  Java 网络的基本知识

第 11 章  Java 网络的基本知识. 11.1 使用 URL 11.2 读取 URL 中的资源 11.3 显示 URL 资源中的 html 文件 11.4 处理超链接 11.5 InetAdress 类 11.6 套接字 11.7   网络中的数据压缩与传输 11.8 UDP 数 据 报 11.9 广播数据报. 11.1 使用 URL.

Download Presentation

第 11 章  Java 网络的基本知识

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 第11章 Java网络的基本知识 • 11.1使用URL • 11.2读取URL中的资源 • 11.3显示URL资源中的html文件 • 11.4处理超链接 • 11.5InetAdress类 • 11.6套接字 • 11.7   网络中的数据压缩与传输 • 11.8UDP数 据 报 • 11.9广播数据报

  2. 11.1 使用URL • URL类是对统一资源定位符(Uniform Resource Locator)的抽象,使用URL创建对象的应用程序称作客户端程序,一个URL对象存放着一个具体的资源的引用,表明客户要访问这个URL中的资源,利用URL对象可以获取URL中的资源 . • URL对象通常包含最基本的三部分信息:协议、地址、资源 .

  3. URL的构造方法 • public URL(String spec) throws MalformedURLException try { url=new URL("http://www.tup.tsinghua.edu.cn"); } catch(MalformedURLException e) { System.out.println ("Bad URL:"+url); }

  4. 11.2 读取URL中的资源 • URL对象调用InputStream openStream() 方法可以返回一个输入流,该输入流指向URL对象所包含的资源。通过该输入流可以将服务器上的资源信息读入到客户端。

  5. 11.3 显示URL资源中的html文件 • Javax.swing包中的JEditorPane容器可以解释执行html文件,也就是说,如果你把html文件读入到JEditorPane,该html文件就会被解释执行,显示在JEditorPane容器中,这样程序就看到了网页的运行效果。

  6. 11.4 处理超链接 • 当JEditorPane对象调用setEditable方法将编辑属性设为false时,不仅可以显示网页的运行效果,而且用户如果单击网页中超链接还可以使得JEditorPane对象触发HyperlinkEvent事件。程序可以通过处理HyperlinkEvent事件,来显示新的URL资源。

  7. 11.5 InetAdress类 • java.net包中的InetAddress类对象含有一个Internet主机地址的域名和IP地址: www.sina.com.cn/202.108.35.210。 • 域名容易记忆,当你在连接网络时输入一个主机的域名后,域名服务器(DNS)负责将域名转化成IP地址,这样我们才能和主机建立连接。

  8. 11.6 套接字 • IP地址标识Internet上的计算机,端口号标识正在计算机上运行的进程(程序)。 • 端口号与IP地址的组合得出一个网络套接字。

  9. 客户端的套接字对象 • 客户端建立到服务器的套接字连接 try{ Socket mysocket= newSocket(“http://192.168.0.78”,1880); } catch(IOException e){}

  10. 获取输入输出流 • 套接字连接mysocket建立后 ,mysocket可以使用方法getInputStream()获得一个输入流,然后用这个输入流读取服务器放入“线路”的信息 (但不能读取自己放入“线路”的信息,就象打电话时,我们只能听到对方放入线路里的声音一样)。mysocket还可以使用方法getOutputStream()获得一个输出流,然后用这个输出流将信息写入“线路”。

  11. 服务器端的套接字对象 • 服务器必须建立一个等待接收客户的套接字的ServerSocket对象。ServerSocket的构造方法是: ServerSocket(int port) port是一个端口号。port必须和客户呼叫的端口号相同。 • 当服务器的ServerSocket对象server_socket建立后,就可以使用方法accept()接收客户的套接字连接呼叫,所谓“接收”客户的套接字连接就是accept()会返回一个和客户端Socket对象相连接的驻留在服务器端的Socket对象,服务器端的这个Socket对象sc使用方法getOutputStream()获得的输出流将指向客户端Socket对象mysocket使用方法getInputStream()获得的那个输入流;同样,服务器端的这个Socket对象sc使用方法getInputStream()获得的输入流将指向客户端Socket对象mysocket使用方法getOutputStream()获得的那个输出流

  12. 套接字连接示意图

  13. 11.7 网络中的数据压缩与传输 • 当使用套接字进行网络通信时,可以使用ZipOutputStream流进行数据压缩,将套接字返回的输出流作为ZipOutputStream流的底层流,然后ZipOutputStream流out将数据压缩到底层流发送到目的地。使用ZipOutputStream类可以若干个文件压缩到底层流发送到目的地。首先使用ZipOutputStream类的构造方法public ZipOutputStream(OutputStream out)创建一个对象,该对象以套接字返回的输出流作为目的地,即作为该流的底层流

  14. 11.8 UDP数 据 报 • 基于UDP的通信和基于TCP的通信不同,基于UDP的信息传递更快,但不提供可靠性保证。也就是说,数据在传输时,用户无法知道数据能否正确到达目的地主机,也不能确定数据到达目的地的顺序是否和发送的顺序相同。 • 基于UDP通信的基本模式是: (1)将数据打包,称为数据包(好比将信件装入信封一样),然后将数据包发往目的地。 (2)接受别人发来的数据包(好比接收信封一样),然后查看数据包中的内容。

  15. 1.发送数据包 • 用DatagramPacket的构造方法创建待发送的数据包: DatagramPacket(byte data[], int length, InetAddtress address,int port): • 使用该构造方法创建的数据报对象具有下列两个性质: • 含有data数组指定的数据。 • 该数据包将发送到地址是address、端口号是port的主机上。 • 用 DatagramSocket类的不带参数的构造方法:DatagramSocket()创建一个对象,该对象负责发送数据包。

  16. 2.接收数据包 • 用 DatagramSocket类另一个构造方法:DatagramSocket(int port) 创建一个对象,其中的参数必须和待接收的数据包的端口号相同。 • DatagramSocket对象使用方法receive(DatagramPacket pack)接受数据包 .

  17. 11.9 广播数据报 • Internet的地址是a.b.c.d的形式。当a小于128,那么b.c.d就用来表示主机,这类地址称做A类地址。如果a大于等于128并且小于192,则a.b表示网络地址,而c.d表示主机地址,这类地址称做B类地址。如果a大于等于192,则网络地址是a.b.c,d表示主机地址,这类地址称做C类地址。224.0.0.0~224.255.255.255是保留地址,称做D类地址。 • 要广播或接收广播的主机都必须加入到同一个D类地址。一个D类地址也称做一个组播地址,D类地址并不代表某个特定主机的位置,一个具有A、B或C类地址的主机要广播数据或接收广播,都必须加入到同一个D类地址。加入到同一个组播地址的主机可以在某个端口上广播信息,也可以在某个端口号上接收信息。

More Related