源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

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

  • 时间:2022-09-16 17:17 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:基于Java中UDP的广播形式(实例讲解)
UDP---用户数据报协议,是一个简单的面向数据报的运输层协议。UDP不提供可靠性,它只是把应用程序传给IP层的数据报发送出去,但是并不能保证它们能到达目的地 ,也不能保证数据包到达的顺序。由于UDP在传输数据报前不用在客户和服务器之间建立一个连接,且没有超时重发等机制,故而传输速度很快。 [b]在Java中UDP的实现:[/b] [b]* UDP:[/b] * 客户端: * 1.创建用于UDP通信的socket对象---DatagramSocket(用于UDP数据的发送和接收)---数据报套接字 * 2.准备数据,封装包----DatagramPacket(数据包) * 3.发送数据,通过send方法 * 4.关闭套接字对象--socket对象 * 服务器端: 接收数据 * 1.创建socket套接字对象,并绑定端口号 * 2.创建包对象,创建空数组,准备接收数据 * 3.接收数据 * 4.关闭资源 [b]* UDP广播方式:[/b] * 同一网段所有主机都能接收,前提是端口要监听 * 客户端发送广播,开启端口监听的服务端接收并打印消息 * 广播的实现 :由客户端发出广播,服务器端接收 * String host = "255.255.255.255";//广播地址--代表所有主机 * 10.0.122.255----代表前三个网段是 10.0.122的所有主机 [b]代码实现:[/b] [b]客户端(发送端):[/b]
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();
 }
 
}
[b]服务器端(接收端):[/b]
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();
 }
}
[b]结果:[/b] 前三个网段是 10.0.122的所有主机上的端口号为4000的服务器端,只要开着,都可以接收到 --- 客户端:哈哈。。。。 以上这篇基于Java中UDP的广播形式(实例讲解)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持编程素材网。
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部