StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
StrictMode.setThreadPolicy(policy);
WifiManager wifiManager = (WifiManager)this.getApplicationContext().getSystemService(Context.WIFI_SERVICE);
wifiManager.setWifiEnabled(true);
MulticastLock mcastLock = wifiManager.createMulticastLock("lock");
mcastLock.acquire();
try {
Enumeration<NetworkInterface> enumeration = NetworkInterface.getNetworkInterfaces();
NetworkInterface p2p0 = null;
NetworkInterface wlan0 = null;
for (NetworkInterface iface : Collections.list(enumeration)) {
try {
if (iface.getName().equals("p2p0")) {
p2p0 = iface;
if(p2p0.supportsMulticast()){
debug.print("p2p0 supports multicast");
} else
{
debug.print("p2p0 does not supports multicast");
}
} else if (iface.getName().equals("wlan0")) {
wlan0 = iface;
if(wlan0.supportsMulticast()){
debug.print("wlan0 supports multicast");
} else
{
debug.print("wlan0 does not supports multicast");
}
}
} catch (NullPointerException e){
e.printStackTrace();
}
}
if(mcastLock.isHeld()){
debug.print("MCast Lock held");
} else
{
debug.print("MCast Lock Not held");
}
String msg = "Hello from "+name;
InetAddress group = InetAddress.getByName("224.0.0.1");
MulticastSocket s = new MulticastSocket(5001);
s.joinGroup(new InetSocketAddress(InetAddress.getByName("224.0.0.1"), 5001), p2p0);
DatagramPacket hi = new DatagramPacket(msg.getBytes(), msg.length(), group, 5001);
// get their responses!
byte[] buf = new byte[1000];
for(int i = 0; i< 30; i++) {
s.send(hi); // line 261
DatagramPacket recv = new DatagramPacket(buf, buf.length);
s.receive(recv);
if(recv.getLength()>0) {
System.out.println("'"+new String(buf, 0 , recv.getLength())+"'");
}
try {
Thread.sleep(100);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
// OK, I'm done talking - leave the group...
s.leaveGroup(group);
} catch (IOException e){
e.printStackTrace();
//debug.print(e.);
}
04-23 19:20:19.492 7083-7083/edu.nps.minet I/System.out: p2p0 supports multicast
04-23 19:20:19.517 7083-7083/edu.nps.minet I/System.out: wlan0 supports multicast
04-23 19:20:19.552 7083-7083/edu.nps.minet I/System.out: MCast Lock held
04-23 19:20:19.572 7083-7083/edu.nps.minet I/System.out: Hello from BDD177B9C6
04-23 19:20:19.597 7083-7083/edu.nps.minet W/System.err: java.net.SocketException: sendto failed: ENETUNREACH (Network is unreachable)
04-23 19:20:19.597 7083-7083/edu.nps.minet W/System.err: at libcore.io.IoBridge.maybeThrowAfterSendto(IoBridge.java:542)
04-23 19:20:19.597 7083-7083/edu.nps.minet W/System.err: at libcore.io.IoBridge.sendto(IoBridge.java:511)
04-23 19:20:19.597 7083-7083/edu.nps.minet W/System.err: at java.net.PlainDatagramSocketImpl.send(PlainDatagramSocketImpl.java:184)
04-23 19:20:19.597 7083-7083/edu.nps.minet W/System.err: at java.net.DatagramSocket.send(DatagramSocket.java:305)
04-23 19:20:19.597 7083-7083/edu.nps.minet W/System.err: at edu.nps.minet.MainActivity$3.onClick(MainActivity.java:261)
04-23 19:20:19.597 7083-7083/edu.nps.minet W/System.err: at android.view.View.performClick(View.java:5697)
04-23 19:20:19.597 7083-7083/edu.nps.minet W/System.err: at android.view.View$PerformClick.run(View.java:22526)
04-23 19:20:19.597 7083-7083/edu.nps.minet W/System.err: at android.os.Handler.handleCallback(Handler.java:739)
04-23 19:20:19.597 7083-7083/edu.nps.minet W/System.err: at android.os.Handler.dispatchMessage(Handler.java:95)
04-23 19:20:19.597 7083-7083/edu.nps.minet W/System.err: at android.os.Looper.loop(Looper.java:158)
04-23 19:20:19.597 7083-7083/edu.nps.minet W/System.err: at android.app.ActivityThread.main(ActivityThread.java:7225)
04-23 19:20:19.597 7083-7083/edu.nps.minet W/System.err: at java.lang.reflect.Method.invoke(Native Method)
04-23 19:20:19.597 7083-7083/edu.nps.minet W/System.err: at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1230)
04-23 19:20:19.597 7083-7083/edu.nps.minet W/System.err: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1120)
04-23 19:20:19.597 7083-7083/edu.nps.minet W/System.err: Caused by: android.system.ErrnoException: sendto failed: ENETUNREACH (Network is unreachable)
04-23 19:20:19.597 7083-7083/edu.nps.minet W/System.err: at libcore.io.Posix.sendtoBytes(Native Method)
04-23 19:20:19.597 7083-7083/edu.nps.minet W/System.err: at libcore.io.Posix.sendto(Posix.java:211)
04-23 19:20:19.597 7083-7083/edu.nps.minet W/System.err: at libcore.io.BlockGuardOs.sendto(BlockGuardOs.java:278)
04-23 19:20:19.597 7083-7083/edu.nps.minet W/System.err: at libcore.io.IoBridge.sendto(IoBridge.java:509)
04-23 19:20:19.597 7083-7083/edu.nps.minet W/System.err: ... 12 more