# HG changeset patch # User one # Date 1343719106 -32400 # Node ID cce76e5eb29b33be4b4e5ee4e84223542a366c9c # Parent 7b43c3c6070819d9bf276cbc0b7b1c87fe8fbbb1 with tcp diff -r 7b43c3c60708 -r cce76e5eb29b src/wifibroadcast/WifiBroadcastTest.java --- a/src/wifibroadcast/WifiBroadcastTest.java Mon Jul 30 14:04:22 2012 +0900 +++ b/src/wifibroadcast/WifiBroadcastTest.java Tue Jul 31 16:18:26 2012 +0900 @@ -2,6 +2,7 @@ import java.io.IOException; import java.nio.ByteBuffer; +import java.util.LinkedList; public class WifiBroadcastTest { private static int DefaultPort = 8412; @@ -10,7 +11,8 @@ private static long timeout = 1000; - int port = DefaultPort ; + LinkedList ports = new LinkedList(); + LinkedList addresses = new LinkedList(); int count = 16; boolean multicast = false; boolean mchannel = false; @@ -19,7 +21,13 @@ WifiReceiver wbr[] = new WifiReceiver[receiver_count]; WifiReceiver wbs[] = new WifiReceiver[sender_count]; private boolean bchannel; + private boolean tcp; + public WifiBroadcastTest() { + ports.add(0,DefaultPort); + addresses.add(0,MCASTADDR); + } + public static void main(String args[]) { new WifiBroadcastTest().test(args); } @@ -28,21 +36,26 @@ options(args); try { if (multicast) { - for(int i=0;i0) { + String sp = adr.substring(p+1); + adr = adr.substring(0,p-1); + if (ports.size()>i) ports.remove(i); + ports.add(i,Integer.parseInt(sp)); + } + if (addresses.size()>i) addresses.remove(i); + addresses.add(i,adr); + } + + private void setPort(String[] args, int i) { + if (ports.size()>i) ports.remove(i); + ports.add(i,Integer.parseInt(args[i])); + } + + public Thread sender(final WifiReceiver wbs, final int count) { Runnable sender = new Runnable() { @Override diff -r 7b43c3c60708 -r cce76e5eb29b src/wifibroadcast/WifiMulticastChannel.java --- a/src/wifibroadcast/WifiMulticastChannel.java Mon Jul 30 14:04:22 2012 +0900 +++ b/src/wifibroadcast/WifiMulticastChannel.java Tue Jul 31 16:18:26 2012 +0900 @@ -19,7 +19,7 @@ protected SocketAddress sAddr; // select on DatagramChannel does not work now protected Selector selector; - protected boolean selectMode = false; + protected boolean selectMode = true; public WifiMulticastChannel() {} @@ -38,7 +38,8 @@ throw new IOException(); } - dc = SelectorProvider.provider().openDatagramChannel(StandardProtocolFamily.INET); + // dc = SelectorProvider.provider().openDatagramChannel(StandardProtocolFamily.INET); + dc = DatagramChannel.open(StandardProtocolFamily.INET); dc.setOption(StandardSocketOptions.SO_REUSEADDR, true); dc.setOption(StandardSocketOptions.IP_MULTICAST_IF, ni); mAddr = InetAddress.getByName(mCASTADDR);