我是wifi直接新手,我希望能够播放一条消息,因为我有一个时间轴,当我点击发布按钮时,我希望所有连接的设备都在他们的时间轴上显示该消息.我能够发送数据对等.我搜索过这个主题,我发现使用UDP是一个不错的选择,但我不知道如何在wifi直接实现它.
我发现这个代码在wifi上使用UDP来获取广播地址
InetAddress getBroadcastAddress() throws IOException {
WifiManager wifi = mContext.getSystemService(Context.WIFI_SERVICE);
DhcpInfo dhcp = wifi.getDhcpInfo();
// handle null somehow
int broadcast = (dhcp.ipAddress & dhcp.netmask) | ~dhcp.netmask;
byte[] quads = new byte[4];
for (int k = 0; k < 4; k++)
quads[k] = (byte) ((broadcast >> k * 8) & 0xFF);
return InetAddress.getByAddress(quads);}
Run Code Online (Sandbox Code Playgroud)
这适用于发送和接收UDP广播包
DatagramSocket socket = new DatagramSocket(PORT);
socket.setBroadcast(true);
DatagramPacket packet = new DatagramPacket(data.getBytes(), data.length(),
getBroadcastAddress(), DISCOVERY_PORT);
socket.send(packet);
byte[] buf = new byte[1024];
DatagramPacket packet = new DatagramPacket(buf, buf.length); …Run Code Online (Sandbox Code Playgroud)