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

2025-05-29 0 95

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

JavaUDP的实现:

* 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的所有主机

代码实现:

客户端(发送端):

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26
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();

}

}

服务器端(接收端):

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25
import java.io.IOException;

import 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的服务器端,只要开着,都可以接收到 —

客户端:哈哈。。。。

以上这篇基于JavaUDP广播形式(实例讲解)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持快网idc。

原文链接:http://www.cnblogs.com/WangLei1221/archive/2017/12/14/8039784.html

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

快网idc优惠网 建站教程 基于Java中UDP的广播形式(实例讲解) https://www.kuaiidc.com/113005.html

相关文章

发表评论
暂无评论