DatagramPacket和DatagramSocket[通俗易懂]

DatagramPacket和DatagramSocket[通俗易懂]DatagramPacket在码头发送和接收货物时都需要使用集装箱来装载货物,UDP通信也是一样,发送和接收的数据也需要使用“集装箱”进行打包,为此JDK中提供了一个DatagramPacket类,该类的实例对象就相当于一个集装箱,用于封装UDP通信中发送或者接收的数据。在创建发送端和接收端的DatagramPacket对象时,使用的构造方法有所不同,接收端的构造方法只需要接收…

大家好,又见面了,我是你们的朋友全栈君。

 

DatagramPacket

在码头发送和接收货物时都需要使用集装箱来装载货物,UDP通信也是一样,发送和接收的数据也需要使用“集装箱”进行打包,为此JDK中提供了一个DatagramPacket类,该类的实例对象就相当于一个集装箱,用于封装UDP通信中发送或者接收的数据。

 

在创建发送端和接收端的DatagramPacket对象时,使用的构造方法有所不同,接收端的构造方法只需要接收一个字节数组来存放接收到的数据,而发送端的构造方法不但要接收存放了发送数据的字节数组,还需要指定发送端IP地址和端口号。接下来根据API文档的内容,对DatagramPacket的构造方法进行逐一详细地讲解。

DatagramPacket和DatagramSocket[通俗易懂]

使用该构造方法在创建DatagramPacket对象时,指定了封装数据的字节数组和数据的大小,没有指定IP地址和端口号。很明显,这样的对象只能用于接收端,不能用于发送端。因为发送端一定要明确指出数据的目的地(ip地址和端口号),而接收端不需要明确知道数据的来源,只需要接收到数据即可。

DatagramPacket和DatagramSocket[通俗易懂]

 

 

DatagramPacket

DatagramPacket数据包的作用就如同是“集装箱”,可以将发送端或者接收端的数据封装起来。然而运输货物只有“集装箱”是不够的,还需要有码头。在程序中需要实现通信只有DatagramPacket数据包也同样不行,为此JDK中提供的一个DatagramSocket类。DatagramSocket类的作用就类似于码头,使用这个类的实例对象就可以发送和接收DatagramPacket数据包,发送数据的过程如下图所示。

DatagramPacket和DatagramSocket[通俗易懂]

在创建发送端和接收端的DatagramSocket对象时,使用的构造方法也有所不同,下面对DatagramSocket类中常用的构造方法进行讲解。

DatagramPacket和DatagramSocket[通俗易懂]
该构造方法用于创建发送端的DatagramSocket对象,在创建DatagramSocket对象时,并没有指定端口号,此时,系统会分配一个没有被其它网络程序所使用的端口号。

 

DatagramPacket和DatagramSocket[通俗易懂]

该构造方法既可用于创建接收端的DatagramSocket对象,又可以创建发送端的DatagramSocket对象,在创建接收端的DatagramSocket对象时,必须要指定一个端口号,这样就可以监听指定的端口。

上面我们讲解了DatagramSocket的构造方法,接下来对DatagramSocket类中的常用方法进行详细地讲解。

DatagramPacket和DatagramSocket[通俗易懂]

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/130638.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • HashMap遍历的四种常用方式「建议收藏」

    HashMap遍历的四种常用方式「建议收藏」古人云:温故而知新。最近闲来无事就去翻阅了一下之前的一些基础java知识点。本想着随便看看,然而就发现有了意外收获。比如本文所讲HashMap遍历的四种常用方式。大伙们一起学习一起进步,记得点赞关注以示鼓励哈!!!准备工作首选我们先准备一个HashMap。publicclassTest1{publicstaticvoidmain(String[]args){Map<String,String>map=newHashMap<St

  • CSS3影子 box-shadow使用和技巧总结

    CSS3影子 box-shadow使用和技巧总结

    2021年12月17日
  • MAC双系统如何切换_mac双系统怎么进入mac系统

    MAC双系统如何切换_mac双系统怎么进入mac系统Mac上面安装双系统是一个很常见的系统选择方案。双系统之间的切换对于使用Mac的用户都不会陌生,但是对于许多初次接触Mac系统的用户而言,也有很多并不知道如何切换双系统,以及如何设置默认进入的系统。虽然只是一个很小的技巧,但是对于新接触Mac系统的用户如果不了解这个的话,那么使用中会有一定的麻烦。双系统的切换以及设置系统默认启动也有几种方法。-w+I4g$u#H#T1K一、开机按Op…

  • mysql语句拼接字符串_C语言字符串输入及输出的几种方式

    mysql语句拼接字符串_C语言字符串输入及输出的几种方式MySQL字符串拼接可以使多个字段的值组成一个集合,不仅可以拼接字符串与字符串、空格、特殊符号甚至可以拼接中文文本,方便我们在不同场景下应用。本教详细讲解`CONCAT()`和它的扩展形式`CONCAT_WS()`在字符串拼接的实战场景中的应用。如果你的应用场景需要周期性重复展示,推荐使用卡拉云将你的代码工具化,详情见本文文末。

  • POJ 2914 Minimum Cut 最小割图论

    POJ 2914 Minimum Cut 最小割图论

  • W3C规范_web标准和w3c标准

    W3C规范_web标准和w3c标准万维网联盟(外语缩写:W3C)标准不是某一个标准,而是一系列标准的集合。网页主要由三部分组成:结构(Structure)、表现(Presentation)和行为(Behavior)。对应的标准也分三方面:结构化标准语言主要包括XHTML和XML,表现标准语言主要包括CSS,行为标准主要包括对象模型(如W3CDOM)、ECMAScript等。这些标准大部分由W3C起草和发布,也…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号