小编lna*_*994的帖子

使用UDP在Wifi Direct上广播

我是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)

android broadcasting wifi-direct

5
推荐指数
1
解决办法
3686
查看次数

标签 统计

android ×1

broadcasting ×1

wifi-direct ×1