# HG changeset patch # User Shinji KONO # Date 1343445409 -32400 # Node ID df9d16620c084c33ed568eb8ce5cda27b44ca8a4 Wifi broad cast test program diff -r 000000000000 -r df9d16620c08 .classpath --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/.classpath Sat Jul 28 12:16:49 2012 +0900 @@ -0,0 +1,6 @@ + + + + + + diff -r 000000000000 -r df9d16620c08 .project --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/.project Sat Jul 28 12:16:49 2012 +0900 @@ -0,0 +1,17 @@ + + + WifiBroadcast + + + + + + org.eclipse.jdt.core.javabuilder + + + + + + org.eclipse.jdt.core.javanature + + diff -r 000000000000 -r df9d16620c08 .settings/org.eclipse.jdt.core.prefs --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/.settings/org.eclipse.jdt.core.prefs Sat Jul 28 12:16:49 2012 +0900 @@ -0,0 +1,12 @@ +#Thu Jul 19 20:50:47 JST 2012 +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled +org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7 +org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve +org.eclipse.jdt.core.compiler.compliance=1.7 +org.eclipse.jdt.core.compiler.debug.lineNumber=generate +org.eclipse.jdt.core.compiler.debug.localVariable=generate +org.eclipse.jdt.core.compiler.debug.sourceFile=generate +org.eclipse.jdt.core.compiler.problem.assertIdentifier=error +org.eclipse.jdt.core.compiler.problem.enumIdentifier=error +org.eclipse.jdt.core.compiler.source=1.7 diff -r 000000000000 -r df9d16620c08 src/wifibroadcast/WifiBroadcastReciver.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/wifibroadcast/WifiBroadcastReciver.java Sat Jul 28 12:16:49 2012 +0900 @@ -0,0 +1,49 @@ +package wifibroadcast; + +import java.io.IOException; +import java.net.InetSocketAddress; +import java.net.SocketException; +import java.net.StandardSocketOptions; +import java.nio.ByteBuffer; +import java.nio.channels.ClosedChannelException; +import java.nio.channels.DatagramChannel; +import java.nio.channels.SelectionKey; +import java.nio.channels.Selector; +import java.nio.channels.spi.SelectorProvider; +import java.util.Iterator; + +import fdl.TupleHandler; + +public class WifiBroadcastReciver implements WifiReciver { + + private DatagramChannel channel; + private Selector selector; + + public WifiBroadcastReciver(int port) throws IOException { + selector = SelectorProvider.provider().openSelector(); + channel = SelectorProvider.provider().openDatagramChannel(); + channel.setOption(StandardSocketOptions.SO_REUSEADDR, true); + try { + InetSocketAddress address = new InetSocketAddress("::", port); + channel.socket().bind(address); + } catch (SocketException e) { + // for some bad IPv6 implementation + channel.socket().bind(new InetSocketAddress(port)); + } + channel.register(selector, SelectionKey.OP_READ); + } + + public void recieve(ByteBuffer testData, long timeout) throws IOException { + if (selector.select(timeout)>0) { + for (Iterator it = selector.selectedKeys().iterator();it.hasNext(); ) { + SelectionKey s = it.next(); + it.remove(); + DatagramChannel ch = (DatagramChannel)s.channel(); + ch.read(testData); + testData.flip(); + return; // one at a time + } + } + } + +} diff -r 000000000000 -r df9d16620c08 src/wifibroadcast/WifiBroadcastSender.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/wifibroadcast/WifiBroadcastSender.java Sat Jul 28 12:16:49 2012 +0900 @@ -0,0 +1,24 @@ +package wifibroadcast; + +import java.io.IOException; +import java.net.DatagramSocket; +import java.net.StandardSocketOptions; +import java.nio.ByteBuffer; +import java.nio.channels.DatagramChannel; + +public class WifiBroadcastSender implements WifiSender { + + private DatagramSocket socket; + private DatagramChannel channel; + + public WifiBroadcastSender(int port) throws IOException { + socket = new DatagramSocket(port); + channel = socket.getChannel(); + channel.setOption(StandardSocketOptions.SO_REUSEADDR, true); + } + + public void send(ByteBuffer testData) throws IOException { + channel.write(testData); + } + +} diff -r 000000000000 -r df9d16620c08 src/wifibroadcast/WifiBroadcastTest.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/wifibroadcast/WifiBroadcastTest.java Sat Jul 28 12:16:49 2012 +0900 @@ -0,0 +1,96 @@ +package wifibroadcast; + +import java.io.IOException; +import java.nio.ByteBuffer; + +public class WifiBroadcastTest { + private static int DefaultPort = 8212; + private static String MCASTADDR = "224.0.0.1"; + + static void main(String args[]) { + int port = DefaultPort ; + int count = 1024; + long timeout = 1000; + boolean multicast = false; + WifiSender wbs = null; + WifiReciver wbr = null; + for(int i=0;i