java udp跨网段广播与接收
时间: 2023-08-04 19:07:06 浏览: 279
udp广播发送与接收
3星 · 编辑精心推荐
UDP是一种无连接的传输协议,它不像TCP那样建立连接,而是直接将数据包发送出去。因此,UDP广播可以实现跨网段的传输。下面是一个Java UDP广播和接收的示例代码:
广播端:
```java
import java.net.*;
public class UDPBroadcaster {
public static void main(String[] args) throws Exception {
DatagramSocket socket = new DatagramSocket();
socket.setBroadcast(true);
String message = "Hello, World!";
DatagramPacket packet = new DatagramPacket(message.getBytes(), message.length(), InetAddress.getByName("255.255.255.255"), 8888);
socket.send(packet);
socket.close();
}
}
```
接收端:
```java
import java.net.*;
public class UDPReceiver {
public static void main(String[] args) throws Exception {
DatagramSocket socket = new DatagramSocket(8888);
byte[] buffer = new byte[1024];
DatagramPacket packet = new DatagramPacket(buffer, buffer.length);
socket.receive(packet);
String message = new String(packet.getData(), 0, packet.getLength());
System.out.println("Received message: " + message);
socket.close();
}
}
```
在广播端,我们创建了一个DatagramSocket,并将其设置为广播模式。然后,我们创建一个DatagramPacket,并将其发送到广播地址(255.255.255.255)的端口8888。在接收端,我们同样创建了一个DatagramSocket,并指定端口号为8888。当接收到数据包时,我们可以从DatagramPacket中获取数据,并将其转换为字符串。
阅读全文