- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第5讲 套接字UDP编程
第5讲 套接字UDP编程 HuFuxiang 预习与提问 1、与Socket相关的类有哪几个?分别起什么作用? 2、Socket类和ServerSocket类分别通过什么方法打开和关闭套接字? 3、如果要实现监听多个客户的连接,应该怎么实现? 本讲任务单 1、UDP通信原理 2、UDP相关类的方法与用法。 3、UDP应用编程 5.1 UDP数据报通信原理 5.1.1 UDP通信机制 1、特点 是一种无连接的C/S通信方式; 不保证所有包均会被对方接收; 不保证接收顺序与发送顺序相同; 速度比TCP快 5.1 UDP数据报通信原理 5.1.1 Socket通信机制 2、UDP与TCP通信的区别 客户机和服务器程序均要建立DatagramSocket对象; 不会被动地等待建立一个连接的请求; 数据报本身含有目标机器的IP地址、端口、数据内容。 5.1 UDP数据报通信原理 5.1.2 主要的类和方法 java.net包中提供了2个与UDP通信相关的类:DatagramSocket类和DatagramPackage类,分别用于收发数据报和封装数据报,数据包中包括IP地址、端口、数据。 通信时,服务器端和客户端均要建立收发数据报的DatagramSocket对象,并使用DatagramPackage对象建立包,作为传送数据的载体。 5.1 UDP数据报通信原理 5.1.2 主要的类和方法 1、DatagramSocket类的主要方法 public DatagramSocket() throws SocketException //创建DatagramSocket对象,自动指定可用端口 public DatagramSocket(int port) throws SocketException //创建DatagramSocket对象,并指定端口 public void receive(DatagramPackage p) throws IOException //接收数据包 public void send(DatagramPackage p) throws IOException //发送数据包 5.1 UDP数据报通信原理 5.1.2 主要的类和方法 2、 DatagramPackage类的主要方法 public DatagramPackage(byte[] buf,int length) //创建DatagramPackage对象,并放置数据包内容、指定包的长度,一般为512B、1024B、2048B等。 public DatagramPackage(DatagramPackage(byte[] buf,int length, InetAddress IP, int port) //创建DatagramPackage对象,并指定数据内容、长度、目标IP地址、目标端口 5.1 UDP数据报通信原理 5.1.2 主要的类和方法 2、 DatagramPackage类的主要方法 public void setData(byte[] buf) //将数组中的数据作为数据包的内容 public InetAddress getAddress() //返回数据包中的IP地址 public int getPort() //返回数据包中的端口号 public byte[] getData() //返回数据包中的数据 public int getLength() //返回数据的长度 5.1 UDP数据报通信原理 DataSocket的主要异常 UnKnownHostException:当DNS不能服务器主机名或者主机名无效,则抛出不知名主机异常; SocketException:Socket工作异常; IOException:非主机名原因而导致的套接字无法打开,则抛出输入输出异常。 5.2 UDP编程综合举例 任务单:从服务器上读取日期和时间。 基本要求:采用UDP实现,客户端构造数据包发送到服务器,服务器端收到后,把系统日期和时间等信息构造成一个数据包送到客户端,客户端显示服务器上的日期时间。 小技巧:编程时均在本机进行,服务器名先设置为“localhost”(IP为127.0.0.1),正式运行实施时再把服务器名改成真正的名字或IP地址。 5.2 UDP编程综合举例 关键任务分析:获得系统时间的类是Calendar,由包java.util.*提供。 Calendar提供一系列的常量和方法,能够设置时区、日期、时间。Calendar 类是一个抽象类,它为特定瞬间与一组诸如 YEAR、MONTH、DAY_OF_MONTH、HOUR 等 日历字段之间的转换提
原创力文档


文档评论(0)