1、1,第十二章 Java网络编程,2,本章重点,数据报 DatagramPacket DatagramSocket 套接字复本,3,12.1 Java网络编程,传统的网络编程是一项非常细节化的工作,程序员必须处理和网络有关的大量细节,如各种协议,甚至要理解网络相关的硬件知识。 Java则将底层的网络通信细节予以屏蔽,使得使用的编程模型是一个文件模型,也就是说,可以象操作流一样来操作网络数据传输。,4,12.2 数据报,可以在网络上传送的独立的信息包 DatagramPacket DatagramSocket,5,12.3 什么是数据报,Java使用DatagramSocket类来表示无连接 的s
2、ocket,接收和发送数据报。接收和要发送 的数据报内容保存在DatagramPacket对象 中。,6,12.3什么是数据报,import .*; import java.io.*; class Transfer public static void main(String args) throws Exceptionint i=0;byte b=new byte1200;FileInputStream f=new FileInputStream(“clicker.java”);DatagramSocket d=new DatagramSocket(666);while(f.availabl
3、e()!=0)bi=(byte)f.read();i+;f.close();d.send(new DatagramPacket(b,i,InetAddressgetByName(“srini”),999); ,7,12.4 DatagramPacket,网络传输中,实际要传送的消息被分割成不同的包,每个包上附上发送方地址和接收方地址。 用于传递这些包的容器就是DatagramPacket,8,12.5 DatagramSocket,DatagramSocket with port NO:999 输入DatagramSocket with port NO:666 输出,9,12.6 套接字复本,
4、发送消息或文件到单一机器,DatagramSocket要使用“666”端口地址,而接收要使用“999”端口地址。 发送端口地址的值可以是“000”到“666”之间,而接收端口地址的值可以是“000”到“999”之间。,10,12.7 在Applet中创建链接,showDocument() openStream() Scoket类,11,12.8 打开Web连接,openSteam()使用指定的URL来打开一个网络连接,并且返回一个InputStream类的实例。如果将这个流转换成一个DataInputStream对象,就能读取流中的字符和字符串。,12,12.9 URLConnection类,
5、提供一种在Web或者FTP站点上通过URL检索文件的方法。 首先创建一个URLConnection类的实例,设置相关参数,然后使用connect()方法打开连接。,13,12.10 Socket类,14,12.11 其他Applet提示,showStatus()方法在包含Applet的浏览器状态栏中显示字符串 Applet信息 重载getAppletInfo()方法,15,12.12 Applet之间的通信,getAppletContex()for(Enumeration e=getAppletContext();getApplets();e.hasMoreElements()Applet current=(Applet)(e.nextElement();current sendMessage();getApplet(),