使用DatagramSocket和DatagramPacket可实现Java中UDP数据发送,1. 创建DatagramSocket对象以绑定本地端口;2. 将数据转换为字节数组并封装成DatagramPacket,指定目标IP和端口;3. 调用send()方法发送数据包;4. 发送完成后关闭socket释放资源,需确保接收方在对应地址端口监听且防火墙允许通信,适用于实时性要求高、可容忍丢包的场景。

在Java中使用UDP发送数据,主要依赖于DatagramSocket和DatagramPacket两个类。UDP是无连接的协议,因此不需要建立连接,直接将数据打包发送到指定地址和端口即可。
DatagramSocket用于发送和接收UDP数据包。发送方可以指定本地端口,也可以由系统自动分配。
DatagramSocket socket = new DatagramSocket(); // 系统自动绑定端口
数据需要转换为字节数组,并封装成DatagramPacket。同时要指定目标主机的IP地址和端口号。
String message = "Hello, UDP!";
byte[] buffer = message.getBytes();
InetAddress address = InetAddress.getByName("127.0.0.1"); // 目标IP
int port = 9876; // 目标端口
DatagramPacket packet = new DatagramPacket(buffer, buffer.length, address, port);
通过DatagramSocket的send()方法发送数据包。
立即学习“Java免费学习笔记(深入)”;
本书是全面讲述PHP与MySQL的经典之作,书中不但全面介绍了两种技术的核心特性,还讲解了如何高效地结合这两种技术构建健壮的数据驱动的应用程序。本书涵盖了两种技术新版本中出现的最新特性,书中大量实际的示例和深入的分析均来自于作者在这方面多年的专业经验,可用于解决开发者在实际中所面临的各种挑战。
485
socket.send(packet);
发送完成后,应关闭socket以释放资源。
socket.close();
完整的简单示例:
import java.net.*;
public class UDPSender {
public static void main(String[] args) throws Exception {
DatagramSocket socket = new DatagramSocket();
String msg = "Hello from UDP sender";
byte[] buf = msg.getBytes();
InetAddress destAddr = InetAddress.getByName("127.0.0.1");
int destPort = 9876;
DatagramPacket packet = new DatagramPacket(buf, buf.length, destAddr, destPort);
socket.send(packet);
socket.close();
System.out.println("数据已发送");
}
}
基本上就这些。注意确保接收方在同一IP和端口监听,且防火墙允许该端口通信。UDP不保证送达,适合对实时性要求高、能容忍少量丢失的场景。
以上就是java中UDP如何发送数据的详细内容,更多请关注php中文网其它相关文章!
java怎么学习?java怎么入门?java在哪学?java怎么学才快?不用担心,这里为大家提供了java速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号