网络UDP广播包发不出去或接收不到问题
更新于2020年1月03日
发生背景
使用电脑作为client端,局域网内发送广播。手机作为server端,监听65532端口。
症状
单播情况下(指定Server端Ip地址),手机可以监听到数据;
广播情况下(Ip=255.255.255.255),手机监听不到数据。
代码
public class UDPClient {
public static void main(String[] args) {
try {
//A.向服务器端发送数据
// 1.定义服务器的地址(指定IP发送)、端口号、数据
Optional<Inet4Address> ip4Address = (Optional<Inet4Address>) NetUtil.getLocalIp4Address();
byte[] data = ("我是客户端,我的Ip为" + ip4Address.get().getHostAddress()).getBytes();
// 2.创建数据报,包含发送的数据信息
DatagramPacket packet = new DatagramPacket(data, data.length, InetAddress.getByName(UDP_HOST), UDP_PORT);
// 3.创建DatagramSocket对象
DatagramSocket socket = new DatagramSocket();
// 4.向服务器端