Java程序设计教程 工业和信息化普通高等教育“十二五”规划教材 教学课件 ppt 作者 段新娥 贾宗维 2_ chap10

上传人:E**** 文档编号:89368918 上传时间:2019-05-24 格式:PPT 页数:20 大小:589KB
返回 下载 相关 举报
Java程序设计教程 工业和信息化普通高等教育“十二五”规划教材  教学课件 ppt 作者  段新娥 贾宗维 2_ chap10_第1页
第1页 / 共20页
Java程序设计教程 工业和信息化普通高等教育“十二五”规划教材  教学课件 ppt 作者  段新娥 贾宗维 2_ chap10_第2页
第2页 / 共20页
Java程序设计教程 工业和信息化普通高等教育“十二五”规划教材  教学课件 ppt 作者  段新娥 贾宗维 2_ chap10_第3页
第3页 / 共20页
Java程序设计教程 工业和信息化普通高等教育“十二五”规划教材  教学课件 ppt 作者  段新娥 贾宗维 2_ chap10_第4页
第4页 / 共20页
Java程序设计教程 工业和信息化普通高等教育“十二五”规划教材  教学课件 ppt 作者  段新娥 贾宗维 2_ chap10_第5页
第5页 / 共20页
点击查看更多>>
资源描述

《Java程序设计教程 工业和信息化普通高等教育“十二五”规划教材 教学课件 ppt 作者 段新娥 贾宗维 2_ chap10》由会员分享,可在线阅读,更多相关《Java程序设计教程 工业和信息化普通高等教育“十二五”规划教材 教学课件 ppt 作者 段新娥 贾宗维 2_ chap10(20页珍藏版)》请在金锄头文库上搜索。

1、第10章 网络通信,10.1 网络编程概述,网络编程的目是使连接在网络中的计算机通过网络协议相互进行通讯。下面先了解一些网络编程中的相关知识。 (1) IP地址 IP地址是标识计算机或网络设备的网络地址。 (2) 网络的应用形式 一般网络编程模型有两种结构:客户机/服务器(Client /Server 简写C/S)和浏览器/服务器(Browser/Server简写B/S)结构。 (3) 协议 协议是计算机之间进行通讯时所应遵循的规则。在Internet中主要使用TCP/IP协议。 (4) 端口(port) 在网络技术中,有两种意义的端口,一是物理意义上的端口,诸如用于和路由器和其他网络设备连接

2、的RJ-45端口。二是逻辑意义上的端口,端口号的范围从0到65535,它用于网络通信时在同一机器上标识不同的进程。,10.2.1 URL类 10.2.2 InetAddress类 (1)创建URL对象 Java提供.URL类创建URL对象 URL类常用的构造器 URL(String spec) 以spec指定的地址创建对象。 URL(String protocol, String host, int port, String file) 以protocol、 host、 port和file指定的协议、主机、端口号和文件名创建对象。 URL(String protocol, String hos

3、t, String file) 以protocol 、host和 file指定的协议、主机名和文件名创建对象。 URL(URL context, String spec) 用URL对象所提供的基本地址和由spec提供的一个相关路径来创建一个URL对象。,10.2 使用URL访问网络资源,10.2.1 URL类,(2)获得URL属性 URL类提供获得URL对象的协议、主机、端口、文件和引用字符串等属性的方法,常用方法如下: public String toString() /返回完整URL地址字符串 public String getProtocol() /获取此 URL 的协议名称 publi

4、c int getPort() /获取此 URL 的端口号 public int getDefaultPort() /获取与此 URL 关联协议的默认端口号 public String getHost() /获取此 URL 的主机名 public String getFile() /获取此 URL 的文件名 public String getRef() /获取此 URL 的锚点(也称为“引用”),10.2.1 URL类,(3)URLConnection类 抽象类 URLConnection 是所有类的超类,它代表应用程序和 URL 之间的通信链接。此类的实例可用于读取和写入此 URL 引用的资

5、源。通常,创建一个到 URL 的连接需要几个步骤: 通过在 URL 上调用 openConnection 方法创建连接对象。 处理设置参数和一般请求属性。 使用 connect 方法建立到远程对象的实际连接。 远程对象变为可用。远程对象的头字段和内容变为可访问。,10.2.2 InetAddress类,使用InetAddress对象可以得到IP地址的相关数据。由于InetAddress类不是公共类,所以在外部不能直接创建对象。 例如,我们可以使用下边的语句获取 的IP地址和计算机名: 1. InetAddress SunAddress=InetAddress.getByName(““); 2.

6、 System.out.println(“SunIP地址“+SunAddress.getHostAddress(); 3. System.out.println(“Sun计算机名“+SunAddress.getHostName();,10.3 TCP Socket通信,10.3.1 Java的TCP Socket通信流程 10.3.2 Socket类和ServerSocket类 10.3.3 采用TCP Socket通信实例,10.3.1 Java的TCP Socket通信流程,通常使用Socket通信的网络程序,由一个服务端程序和一个客户端程序组成,两端都是Application应用程序。服

7、务端程序包含一个ServerSocket对象用于连接服务和一个用于通信的Socket对象,客户端只包含一个用于通信的Socket对象 。 具体的通信流程说明如下: 服务器创建一个ServerSocket,然后调用其accept方法等待客户端的连接。 客户端程序创建一个Socket并请求与服务器的连接。 服务器接收客户的连接请求,并创建一个新的Socket与该客户建立专线连接。 建立连接的两个Socket在服务器创建的单独的线程中对话。 当一方决定结束通信时,向对方发送结束信息;另一方接收到结束信息后双方分别关闭各自的TCP连接。 ServerSocket对象停止等待客户端的连接请求。,10.3

8、.2 Socket类和ServerSocket类,(1)Socket类 Socket类的构造方法 Socket(String host, int port) 以字符串host表示的主机地址和prot指定的端口创建对象。 Socket(InetAddress address, int port) 以address指定的IP地址和port指定的端口创建对象。 Socket(String host, int port, InetAddress localAddr, int localPort) 以字符串host表示的主机地址和prot指定的端口创建对象。 Socket(InetAddress add

9、ress, int port, InetAddress localAddr) 以address指定的IP地址和port指定的端口创建对象。,10.3.2 Socket类和ServerSocket类,Socket对象常用的方法 InetAddress getInetAddress() /返回与该Socket连接的InetAddress对象。 InetAddress getLocalAddress() /返回与该Socket绑定的本地的InetAddress对象。 int getPort() /返回与该Socket连接的端口。 int getLocalPort() /返回与该Socket绑定的本地

10、端口。 InputStream getInputStream() /获得该Socket 的输入流对象。 OutputStream getOutputStream() /获得该Socket的输出流对象。 close() /关闭Socket,断开连接。,10.3.2 Socket类和ServerSocket类,(2)ServerSocket类 创建服务器的过程就是创建在特定端口监听客户机请求的ServerSocket对象的过程。ServerSocket只是监听进入的连接,为每个新的连接创建一个Socket,它并不执行服务,数据之间的通讯由创建的Socket来完成。 ServerSocket类的构造

11、方法 ServerSocket() 创建一个无绑定的ServerSocket对象。 ServerSocket(int port) 创建一个被绑定到port指定端口的ServerSocket对象。 ServerSocket(int port, int backlog) 创建一个被绑定到port指定端口的ServerSocket对象。backlog指定可接收连接的个数,即最大的连接数。 ServerSocket(int port, int backlog, InetAddress bindAddr) 创建一个被绑定到指定IP地址和端口的对象。backlog指定可接收连接的个数。,10.3.2 So

12、cket类和ServerSocket类,ServerSocket对象的常用方法 Socket accept() /该方法监听来自客户端的请求,直到捕获到客户的请求后便获得一个Socket对象,此后服务器程序使用该Socket对象读写数据,实现与客户的通讯 。 void bind(SocketAddress endpoint) /与endpoint指定的SocketAddress (IP地址和端口号)绑定 Void close() /关闭该socket InetAddress getInetAddress() /获得IP地址 Int getLocalPort() /获得监听的端口号 Int ge

13、tSoTimeout() /获得连接超时设置 Boolean isBound() /获得对象的绑定状态 Boolean isClosed() /获得对象截止的状态 Void setSoTimeout(int timeout) /设置连接超时时间为毫秒,10.3.3 采用TCP Socket通信实例,演示通过TCP Socket通信实现点对点聊天 本例需要建立2个类,ChatServer类提供服务端的TCP连接服务,ChatTCPSocketJFrame类实现客户端的TCP Socket通信以及两者的图像用户界面。运行结果如图11-2所示。,10.3.3 采用TCP Socket通信实例,演示通

14、过TCP Socket通信实现多客户聊天 本例演示多客户的聊天程序,将每台计算机设置成既是服务端也是客户端。作为服务端,创建一个ServerSocket对象始终等待连接请求,一旦接收到一个连接请求,就创建一个Socket对象进行通信,并在选项卡窗格中增加一页;作为客户端,设置“请求连接”功能,向指定主机的端口发送连接请求。,10.4 UDP数据报通信,10.4.1 数据报通信 10.4.2 UDP组播数据报,10.4.1 数据报通信,在包中提供了两个类DatagramPacke和DatagramSocket用来支持数据报的通信,DatagramPacke用来表示一个数据报,DatagramSo

15、cket用于在程序之间建立传送数据报的通信连接。 (1)DatagramPacke类 DatagramPacke类构造方法: DatagramPacket(byte buf, int length) DatagramPacket(byte buf, int length, InetAddress address, int port) DatagramPacket(byte buf, int offset, int length) DatagramPacket(byte buf, int offset, int length, InetAddress address, int port) Dat

16、agramPacket(byte buf, int offset, int length, SocketAddress address) DatagramPacket(byte buf, int length, SocketAddress address) 其中:buf存放数据报的数据;length表示数据报的长度;offset表示数据报的位移量。,10.4.1 数据报通信,(2)DatagramSocket类 DatagramSocket类构造方法: DatagramSocket() DatagramSocket(int prot) DatagramSocket(int port, InetAddress address) DatagramSocket(SocketAddress bindaddress) DatagramSocket类常用方法: void r

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

最新文档


当前位置:首页 > 高等教育 > 大学课件

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