Java网络的基本知识课件

上传人:cl****1 文档编号:569358786 上传时间:2024-07-29 格式:PPT 页数:31 大小:233.50KB
返回 下载 相关 举报
Java网络的基本知识课件_第1页
第1页 / 共31页
Java网络的基本知识课件_第2页
第2页 / 共31页
Java网络的基本知识课件_第3页
第3页 / 共31页
Java网络的基本知识课件_第4页
第4页 / 共31页
Java网络的基本知识课件_第5页
第5页 / 共31页
点击查看更多>>
资源描述

《Java网络的基本知识课件》由会员分享,可在线阅读,更多相关《Java网络的基本知识课件(31页珍藏版)》请在金锄头文库上搜索。

1、第11章Java网络的基本知识网络的基本知识n11.1使用使用URLn11.2读取读取URL中的资源中的资源n11.3显示显示URL资源中的资源中的html文件文件n11.4处理超链接处理超链接n11.5InetAdress类类n11.6套接字套接字n11.7 网络中的数据压缩与传输网络中的数据压缩与传输n11.8UDP数数 据据 报报n11.9广播数据报广播数据报 111.1 使用使用URLnURL类是对统一资源定位符(Uniform Resource Locator)的抽象,使用URL创建对象的应用程序称作客户端程序,一个URL对象存放着一个具体的资源的引用,表明客户要访问这个URL中的资

2、源,利用URL对象可以获取URL中的资源。nURL对象通常包含最基本的三部分信息:协议、地址、资源 。2URL的构造方法npublic URL(String spec) throws MalformedURLExceptiontry url=new URL(http:/); catch(MalformedURLException e) System.out.println (Bad URL:+url); 3URL的构造方法npublic URL(String protocol,String host,String file) throws MalformedURLException4客户与服务

3、器nWeb的客户/服务器体系结构的含义就是:客户需要某些类型的信息,而服务器提供客户所需要的信息。客户需要连接到服务器上,并向服务器请求信息而服务器则向客户发送信息,两者协同工作,各得其所。511.2 读取读取URL中的资源中的资源nURL对象调用InputStream openStream() 方法可以返回一个输入流,该输入流指向URL对象所包含的资源。通过该输入流可以将服务器上的资源信息读入到客户端。 611.3 显示显示URL资源中的资源中的html文件文件nJavax.swing包中的JEditorPane容器可以解释执行html文件,也就是说,如果你把html文件读入到JEditor

4、Pane,该html文件就会被解释执行,显示在JEditorPane容器中,这样程序就看到了网页的运行效果。 711.3 显示显示URL资源中的资源中的html文件文件nJEditorPane类的构造方法: public JEditorPane() public JEditorPane(URL initialpage) throws IOException public JEditorPane(String url) throws IOExceptionnJEditorPane的对象调用 public void setPage(URL page) throws IOException 方法可以

5、显示新的URL中的资源。811.4 处理超链接处理超链接n当JEditorPane对象调用setEditable方法将编辑属性设为false时,不仅可以显示网页的运行效果,而且用户如果单击网页中超链接还可以使得JEditorPane对象触发HyperlinkEvent事件。程序可以通过处理HyperlinkEvent事件,来显示新的URL资源。nJEditorPane对象调用addHyperlinkListener(HyperlinkEvent listener) 方法获得监视器。监视器实现HyperlinkListener接口,该接口中的方法如下: void hyperlinkUpdate(

6、HyperlinkEvent e)911.5 InetAdress类类包中的InetAddress类对象含有一个Internet主机地址的域名和IP地址: 获取Internet上主机的地址n可以使用InetAddress类的静态方法 getByName(String s); 将一个域名或IP地址传递给该方法的参数s,获得一个InetAddress对象,该对象含有主机地址的域名和IP地址,该对象用如下格式表示它包含的信息: 获取Internet上主机的地址nInetAddress类含有两个实例方法 public String getHostName() 获取InetAddress对象所含的域

7、名 public String getHostAddress() 获取InetAddress对象所含的IP地址122. 获取本地机的地址n可以使用InetAddress类的静态方法 getLocalHost(); 获得一个InetAddress对象,该对象含有本地机的域名和IP地址。1311.6 套接字套接字nIP地址标识Internet上的计算机,端口号标识正在计算机上运行的进程(程序)。 n端口号与IP地址的组合得出一个网络套接字。端口号被规定为一个16位的整数065535。其中,01023被预先定义的服务通信占用,如telnet占用端口23,http占用端口80等。除非我们需要访问这些特

8、定服务,否则,就应该使用102465535这些端口中的某一个进行通信,以免发生端口冲突。当两个程序需要通信时,它们可以通过使用Socket类建立套接字连接。14客户端的套接字对象客户端的套接字对象 n客户端的程序利用Socket类建立到服务器的套接字连接。nSocket的构造方法如下: Socket(String host,int port)try Socket mysocket=newSocket(“http:/192.168.0.78”,1880); catch(IOException e)15获取输入输出流n套接字连接mysocket建立后 ,mysocket可以使用方法getInput

9、Stream()获得一个输入流,然后用这个输入流读取服务器放入“线路”的信息。mysocket还可以使用方法getOutputStream()获得一个输出流,然后用这个输出流将信息写入“线路”。16服务器端的套接字对象n服务器必须建立一个等待接收客户的套接字的ServerSocket对象。ServerSocket的构造方法是: ServerSocket(int port)port是一个端口号。port必须和客户呼叫的端口号相同。例如: try ServerSocket server_socket=new ServerSocket(1880); catch(IOException e) n当服务

10、器的ServerSocket对象server_socket建立后,就可以使用方法accept()接收客户的套接字连接呼叫。17服务器端的套接字对象n所谓“接收”客户的套接字连接就是accept()会返回一个和客户端Socket对象相连接的驻留在服务器端的Socket对象,服务器端的这个Socket对象sc使用方法getOutputStream()获得的输出流将指向客户端Socket对象mysocket使用方法getInputStream()获得的那个输入流;同样,服务器端的这个Socket对象sc使用方法getInputStream()获得的输入流将指向客户端Socket对象mysocket使

11、用方法getOutputStream()获得的那个输出流。 n注意: accept()方法会堵塞线程的继续执行,直到接收到客户的呼叫。18套接字连接示意图 19服务器端的套接字对象n连接建立后,服务器端的套接字对象调用getInetAddress()方法可以获取一个InetAddress对象,该对象含有客户端的IP地址和域名。同样,客户端的套接字对象调用getInetAddress()方法可以获取一个InetAddress对象,该对象含有服务器端的IP地址和域名。n双方通信完毕后,应使用close()方法关闭套接字连接。n注意:ServerSocket对象可以调用setSoTimeout(in

12、t timeout)方法设置超时值,当对象调用accept()方法堵塞的时间一旦超过timeout时,将触发SocketTimeoutException。20 把套接字连接放在一个线程中n套接字连接中涉及到输入流和输出流操作,为了不影响我们做其它的事情,我们应把套接字连接放在一个单独的线程中去进行。另外,服务器端收到一个客户的套接字后,就应该启动一个专门为该客户服务的线程。2111.7 网络中的数据压缩与传输网络中的数据压缩与传输 n当使用套接字进行网络通信时,可以使用ZipOutputStream流进行数据压缩,将套接字返回的输出流作为ZipOutputStream流的底层流,然后ZipOu

13、tputStream流out将数据压缩到底层流发送到目的地。使用ZipOutputStream类可以将若干个文件压缩到底层流发送到目的地。首先使用ZipOutputStream类的构造方法 public ZipOutputStream(OutputStream out)创建一个对象,该对象以套接字返回的输出流作为目的地,即作为该流的底层流。例如: 2211.7 网络中的数据压缩与传输网络中的数据压缩与传输 ZipOutputStream out=new ZipOutputStream(socket.getOutputStream();再让out调用:public void putNextEnt

14、ry(ZipEntry e)方法确定向底层流写入下一个文件的位置,例如: out.putNextEntry(new ZipEntry(“A.txt”);然后out对象调用write方法将文件A.txt压缩后写入到底层流中。2311.7 网络中的数据压缩与传输网络中的数据压缩与传输 n数据接收方对应地使用ZipInputStream类创建对象,该对象以套接字获取的输入流作为源,即作为该流的底层流,例如: ZipIutputStream out=new ZipIutputStream(socket.getIutputStream();然后让in找到发送方写入到底层流中下一个文件,例如:ZipEnt

15、ry zipEntry=in.getNextEntry();那么,in调用read方法可以读取(解压)找到的该文件。2411.8 UDP数数 据据 报报n基于UDP的通信和基于TCP的通信不同,基于UDP的信息传递更快,但不提供可靠性保证。也就是说,数据在传输时,用户无法知道数据能否正确到达目的地主机,也不能确定数据到达目的地的顺序是否和发送的顺序相同。 n 基于UDP通信的基本模式是: (1)将数据打包,称为数据包(好比将信件装入信封一样),然后将数据包发往目的地。 (2)接受别人发来的数据包(好比接收信封一样),然后查看数据包中的内容。 251发送数据包发送数据包 n(1) 首先用Data

16、gramPacket类将数据打包。用DatagramPacket的构造方法创建待发送的数据包: DatagramPacket(byte data , int length, InetAddtress address,int port):n使用该构造方法创建的数据包对象具有下列两个性质:1.含有data数组指定的数据。2.该数据包将发送到地址是address,端口号是port的主机上。261发送数据包发送数据包 n例如:byte data=“近来好吗?”.getByte();InetAddress address=InetAddress.getName(); DatagramPacket dat

17、a_pack=new DatagramPacket(data,data.length,address,980);nDatagramPacket(byte data, int offset, int length, InetAddtress address, int port): 使用该构造方法创建的数据包对象含有数组data从offset开始指定长度的数据,该数据包将发送到地址是address,端口号是port的主机上。271发送数据包发送数据包 n(2) 然后用DatagramSocket类的不带参数的构造方法DatagramSocket()创建一个对象,该对象负责发送数据包。例如: Dat

18、agramSocket mail_out=new DatagramSocket(); mail_out.send(data_pack);282接收数据包接收数据包n用 DatagramSocket类另一个构造方法:DatagramSocket(int port) 创建一个对象,其中的参数必须和待接收的数据包的端口号相同。 nDatagramSocket对象使用方法receive(DatagramPacket pack)接收数据包。该方法有一个数据包参数pack,方法receive把收到的数据包传递给该参数。因此必须预备一个数据包以便收取数据包。这时需使用 DatagramPacket类的另外一

19、个构造方法 DatagramPacket(bytedata,int length) 创建一个数据包,用于接收数据包,例如:292接收数据包接收数据包 byte data=new byte100;int length=90; DatagramPacket pack=new DatagramPacket(data,length); mail_in.receive(pack);该数据包pack将接收长度是length的数据放入data。3011.9 广播数据报广播数据报n广播数据报涉及到地址和端口。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.0224.255.255.255是保留地址,称做D类地址。n要广播或接收广播的主机都必须加入到同一个D类地址。一个D类地址也称做一个组播地址,D类地址并不代表某个特定主机的位置,一个具有A、B或C类地址的主机要广播数据或接收广播,都必须加入到同一个D类地址。加入到同一个组播地址的主机可以在某个端口上广播信息,也可以在某个端口号上接收信息。 31

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

最新文档


当前位置:首页 > 办公文档 > 教学/培训

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