• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

基于Java中UDP的广播形式(实例讲解)

java 搞代码 4年前 (2022-01-05) 25次浏览 已收录 0个评论

下面小编就为大家分享一篇基于Java中UDP的广播形式(实例讲解),具有很好的参考价值,希望对大家有所帮助

UDP—用户数据报协议,是一个简单的面向数据报的运输层协议。UDP不提供可靠性,它只是把应用程序传给IP层的数据报发送出去,但是并不能保证它们能到达目的地 ,也不能保证数据包到达的顺序。由于UDP在传输数据报前不用在客户和服务器之间建立一个连接,且没有超时重发等机制,故而传输速度很快。

在Java中UDP的实现:

* UDP:

* 客户端:

* 1.创建用于UDP通信的socket对象—DatagramSocket(用于UDP数据的发送和接收)—数据报套接字

* 2.准备数据,封装包—-DatagramPacket(数据包)

* 3.发送数据,通过send方法

* 4.关闭套接字对象–socket对象

* 服务器端: 接收数据

* 1.创建socket套接字对象,并绑定端口号

* 2.创建包对象,创建空数组,准备接收数据

* 3.接收数据

* 4.关闭资源

* UDP广播方式:

* 同一网段所有主机都能接收,前提是端口要监听

* 客户端发送广播,开启端口监听的服务端接收并打印消息

* 广播的实现 :由客户端发出广播,服务器端接收

* String host = “255.255.255.255”;//广播地址–代表所有主机

* 10.0.122.255—-代表前三个网段是 10.0.122的所有主机

代码实现:

客户端(发送端):

 import java.io.IOException; import java.net.DatagramPacket; import java.net.DatagramSocket; import java.net.InetAddress; import java.net.SocketException; import java.net.UnknownHostException; public class UDP_client { public static void main(String[] args) throws IOException { //1.创建对象 //构造数据报套接字并将其绑定到本地主机上任何可用的端口。 DatagramSocket socket = new DatagramSocket(); //2.打包 byte[] arr = "客户端:哈哈。。。。".getBytes(); //四个参数: 包的数据 包的长度 主机对象 端口号 DatagramPacket packet = new DatagramPacket (arr, arr.length,InetAddress.getByName("10.0.122.255") , 4000); //3.发送 socket.send(packet); //4.关闭资源 socket.close(); } }

服务器端(接收端):

 import java.io.IOException; import<mark style="color:transparent">来源gaodaimacom搞#^代%!码网</mark> java.net.DatagramPacket; import java.net.DatagramSocket; import java.net.SocketException; import java.util.Arrays; public class UDP_server { public static void main(String[] args) throws IOException { //1 DatagramSocket serverSocket = new DatagramSocket(4000); //2 byte[] arr = new byte[1024]; DatagramPacket packet = new DatagramPacket(arr, arr.length); //3 当程序运行起来之后,receive方法会一直处于监听状态 serverSocket.receive(packet); //从包中将数据取出 byte[] arr1 = packet.getData(); System.out.println(new String(arr1)); //4 serverSocket.close(); } }

结果:

前三个网段是 10.0.122的所有主机上的端口号为4000的服务器端,只要开着,都可以接收到 —

客户端:哈哈。。。。

以上就是基于Java中UDP的广播形式(实例讲解)的详细内容,更多请关注gaodaima搞代码网其它相关文章!


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:基于Java中UDP的广播形式(实例讲解)

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址