《第10章网络通信.ppt》由会员分享,可在线阅读,更多相关《第10章网络通信.ppt(24页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第第10章章 网络通信网络通信10.1 使用使用URL访问网络资源访问网络资源10.2 TCP Socket通信通信10.3 UDP数据报通信数据报通信Java程序设计实用教程(第3版)10.1 使用使用URL访问网络资源访问网络资源1.10.1.1 URL和和IP地址地址 2.10.1.2 使用使用JTabbedPane、JSplitPane和和JEditorPaneJava程序设计实用教程(第3版)10.1.1 URL和和IP地址地址 1.URL类类协议协议:/主机主机:端口端口/文件文件#引用引用public final class URL implements java.io.Seri
2、alizable public URL(String protocol,String host,int port,String file)throws MalformedURLExceptionpublic String toString()/返回完整返回完整URL地址字符串地址字符串public String getProtocol()/返回协议名返回协议名public int getPort()/返回端口返回端口public int getDefaultPort()/返回默认端口返回默认端口public String getHost()/返回主机名返回主机名public String ge
3、tFile()/返回完整文件名返回完整文件名public final InputStream openStream()throws java.io.IOException /使用流获得使用流获得URL资源内容资源内容URL url2=new URL(http:/);Java程序设计实用教程(第3版)2.URLConnection类类1.URLConnection类声明类声明public abstract class URLConnection public URL getURL()/返回当前连接的返回当前连接的URL对象对象 public int getContentLength()/返回资源
4、文件的长度返回资源文件的长度 public String getContentType()/返回资源文件的类型返回资源文件的类型 public long getLastModified()/返回资源文件的最后修改日期返回资源文件的最后修改日期2.使用使用URL类的类的openConnection()方法创建一个方法创建一个URLConnection对象对象Public URLConnection openConnection()throws java.io.IOExceptionJava程序设计实用教程(第3版)3.InetAddress类类 public class InetAddress
5、extends Object implements Serializable public static InetAddress getByName(String host)throws UnknownHostException public static InetAddress getByAddress(String host,byte addr)throws UnknownHostException public static InetAddress getLocalHost()throws UnknownHostException /返回本地主机返回本地主机 public String
6、getHostAddress()/返回返回IP地址字符串地址字符串 public String getHostName()/返回主机名返回主机名Java程序设计实用教程(第3版)10.1.2 使用使用JTabbedPane、JSplitPane和和JEditorPane1.选项卡窗格选项卡窗格public class JTabbedPane extends JComponent implements Serializable,Accessible,SwingConstants public JTabbedPane()/构造方法构造方法 public void addTab(String tit
7、le,Component comp)/添加页添加页 public int getTabCount()/返回页数返回页数 public int getSelectedIndex()/当前选中页序号当前选中页序号 public void setSelectedIndex(int index)/选中第选中第index页页 public void addChangeListener(ChangeListener l)/注册选择事件监听器注册选择事件监听器Java程序设计实用教程(第3版)2.分割窗格分割窗格public class JSplitPane extends JComponent imple
8、ments Accessible public final static int VERTICAL_SPLIT=0;/垂直分割常量垂直分割常量 public final static int HORIZONTAL_SPLIT=1;/水平分割常量水平分割常量 public JSplitPane()/创建分割窗格创建分割窗格 public JSplitPane(int orientation)/指定分割方向常量指定分割方向常量 public void setDividerLocation(int location)/设置分割条位置(单位是像素)设置分割条位置(单位是像素)Java程序设计实用教程(
9、第3版)3.编辑器窗格编辑器窗格public class JEditorPane extends JTextComponent public JEditorPane()/构造方法构造方法 public JEditorPane(URL initialPage)throws IOException /指定初始页的指定初始页的URL public JEditorPane(String url)throws IOExceptionJava程序设计实用教程(第3版)【例例10.1】查看指定查看指定URL的的Web页编辑器及页编辑器及HTML文档。文档。Java程序设计实用教程(第3版)10.2 TCP
10、Socket通信通信1.10.2.1 TCP Socket通信原理通信原理2.10.2.2 Java的的Socket通信通信Java程序设计实用教程(第3版)10.2.1 TCP Socket通信原理通信原理1.IP协议协议nIPv4数据报头格式数据报头格式 Java程序设计实用教程(第3版)2.传输层协议传输层协议用户数据报协议(用户数据报协议(UDP)和传输控制协议)和传输控制协议(TCP)协议)协议 n通过端口指定服务通过端口指定服务3.基于基于TCP连接的连接的Socket通信通信Java程序设计实用教程(第3版)10.2.2 Java的的TCP Socket通信通信1.Java的的S
11、ocket通信流程通信流程Java程序设计实用教程(第3版)2.ServerSocket类和类和Socket类类 public class ServerSocket extends Object public ServerSocket(int port)throws IOException /构造方法,指定端口号构造方法,指定端口号 public Socket accept()throws IOException /等待接收客户端的连接请求,连接成功后返等待接收客户端的连接请求,连接成功后返回一个已连接的回一个已连接的Socket对象对象 public void close()throws I
12、OException /停止等候客户端的连接请求停止等候客户端的连接请求Java程序设计实用教程(第3版)Socket类类public class Socket extends Object public Socket(String host,int port)throws UnknownHostException,IOException /构造方法,指定主机名和端口号构造方法,指定主机名和端口号 public InputStream getInputStream()throws IOException /返回返回TCP连接提供的字节输入流连接提供的字节输入流 public OutputStr
13、eam getOutputStream()throws IOException /返回返回TCP连接提供有字节输出流连接提供有字节输出流 public synchronized void close()throws IOException /关闭关闭TCP连接连接【例例10.2】采用采用TCP Socket通信实现的点对点聊天通信实现的点对点聊天。Java程序设计实用教程(第3版)3.提供多客户的提供多客户的Socket通信通信服务服务【例例10.3】网络发牌程序。网络发牌程序。Java程序设计实用教程(第3版)【例例10.4】多客户的多客户的TCP Socket通信。通信。Java程序设计实
14、用教程(第3版)10.3 UDP数据报通信数据报通信1.10.3.1 UDP数据报数据报2.10.3.2 UDP组播数据报组播数据报Java程序设计实用教程(第3版)10.3.1 UDP数据报数据报1.数据报包数据报包public final class DatagramPacket extends Object public DatagramPacket(byte buf,int length,InetAddress address,int port)/创建发送数据报创建发送数据报 public DatagramPacket(byte buf,int length)/创建接收数据报创建接收数
15、据报 public byte getData()/从缓冲区中返回数据从缓冲区中返回数据 public int getLength()/返回数据报的长度返回数据报的长度 public InetAddress getAddress()/返回远程主机返回远程主机IP地址地址 public int getPort()/返回远程主机的端口号返回远程主机的端口号 public void setAddress(InetAddress iaddr)/发往的主机的发往的主机的IP地址地址 public void setPort(int iport)/发往的远程主机上的端口发往的远程主机上的端口 Java程序设计
16、实用教程(第3版)2.数据报套接字数据报套接字public class DatagramSocket extends Object public DatagramSocket()throws SocketException /创建创建Socket,绑定一可用端口,绑定一可用端口 public DatagramSocket(int port)throws SocketException /port指定端口指定端口 public void send(DatagramPacket pack)throws IOException /发送发送pack数据报包数据报包 public void receiv
17、e(DatagramPacket pack)throws IOException /接收数据报包存于接收数据报包存于pack中中 public void close()/关闭关闭SocketJava程序设计实用教程(第3版)【例例10.5】采用采用UDP数据报通信数据报通信实现的点对点聊天。实现的点对点聊天。Java程序设计实用教程(第3版)10.3.2 UDP组播数据报组播数据报1.组播地址组播地址Java程序设计实用教程(第3版)2.组播套接字组播套接字public class MulticastSocket extends DatagramSocket public MulticastS
18、ocket(int port)throws IOException /创建组播套接字并将其绑定到创建组播套接字并将其绑定到port端口端口 public void joinGroup(InetAddress dip)throws IOException /加入广播组,加入广播组,dip指定组播地址指定组播地址 public void setTimeToLive(int ttl)throws IOException /设置广播范围设置广播范围 public void leaveGroup(InetAddress dip)throws IOException /离开广播组离开广播组【例例10.6】
19、用于控制网络考试时间的广播。用于控制网络考试时间的广播。【例例10.7】广播聊天。广播聊天。Java程序设计实用教程(第3版)实验实验10 网络通信网络通信 n目的:目的:通过通过URL访问网络资源,访问网络资源,Socket通信。通信。要求:要求:掌握通过掌握通过URL获得指定网络资源内容和获得指定网络资源内容和文件属性,掌握使用文件属性,掌握使用ServerSocket类和类和Socket类进行类进行TCP Socket通信的程序设计方通信的程序设计方法;掌握法;掌握UDP数据报通信和组播通信的程序设数据报通信和组播通信的程序设计方法。计方法。重点:重点:TCP Socket,UDP Socket。n难点:难点:TCP Socket,UDP Socket。Java程序设计实用教程(第3版)