annotate src/wifibroadcast/WifiBroadcastTest.java @ 14:7b43c3c60708

tcp
author one
date Mon, 30 Jul 2012 14:04:22 +0900
parents e1f43b669cdb
children cce76e5eb29b
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
df9d16620c08 Wifi broad cast test program
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1 package wifibroadcast;
df9d16620c08 Wifi broad cast test program
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
2
df9d16620c08 Wifi broad cast test program
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
3 import java.io.IOException;
df9d16620c08 Wifi broad cast test program
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
4 import java.nio.ByteBuffer;
df9d16620c08 Wifi broad cast test program
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
5
df9d16620c08 Wifi broad cast test program
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
6 public class WifiBroadcastTest {
3
9c99e2193277 find broadcast
one
parents: 2
diff changeset
7 private static int DefaultPort = 8412;
0
df9d16620c08 Wifi broad cast test program
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
8 private static String MCASTADDR = "224.0.0.1";
3
9c99e2193277 find broadcast
one
parents: 2
diff changeset
9 private static int testSize = 256;
4
404778ac3f55 worked. Broadcast, Multicast, Multicast channel.
one
parents: 3
diff changeset
10 private static long timeout = 1000;
0
df9d16620c08 Wifi broad cast test program
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
11
9
95d58cc5bb0b instance for test, multiple senders
one
parents: 5
diff changeset
12
95d58cc5bb0b instance for test, multiple senders
one
parents: 5
diff changeset
13 int port = DefaultPort ;
95d58cc5bb0b instance for test, multiple senders
one
parents: 5
diff changeset
14 int count = 16;
95d58cc5bb0b instance for test, multiple senders
one
parents: 5
diff changeset
15 boolean multicast = false;
95d58cc5bb0b instance for test, multiple senders
one
parents: 5
diff changeset
16 boolean mchannel = false;
95d58cc5bb0b instance for test, multiple senders
one
parents: 5
diff changeset
17 int receiver_count = 1;
95d58cc5bb0b instance for test, multiple senders
one
parents: 5
diff changeset
18 int sender_count = 1;
95d58cc5bb0b instance for test, multiple senders
one
parents: 5
diff changeset
19 WifiReceiver wbr[] = new WifiReceiver[receiver_count];
95d58cc5bb0b instance for test, multiple senders
one
parents: 5
diff changeset
20 WifiReceiver wbs[] = new WifiReceiver[sender_count];
12
e1f43b669cdb broadcast on DatagramChannel
one
parents: 10
diff changeset
21 private boolean bchannel;
9
95d58cc5bb0b instance for test, multiple senders
one
parents: 5
diff changeset
22
2
2a328333ba70 no compile errors
one
parents: 1
diff changeset
23 public static void main(String args[]) {
9
95d58cc5bb0b instance for test, multiple senders
one
parents: 5
diff changeset
24 new WifiBroadcastTest().test(args);
95d58cc5bb0b instance for test, multiple senders
one
parents: 5
diff changeset
25 }
95d58cc5bb0b instance for test, multiple senders
one
parents: 5
diff changeset
26
95d58cc5bb0b instance for test, multiple senders
one
parents: 5
diff changeset
27 public void test(String args[]) {
95d58cc5bb0b instance for test, multiple senders
one
parents: 5
diff changeset
28 options(args);
0
df9d16620c08 Wifi broad cast test program
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
29 try {
df9d16620c08 Wifi broad cast test program
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
30 if (multicast) {
9
95d58cc5bb0b instance for test, multiple senders
one
parents: 5
diff changeset
31 for(int i=0;i<wbr.length;i++) wbr[i] = new WifiMulticast(i,MCASTADDR,port,WifiReceiver.SocketType.Receiver);
10
fc180f38257e multiple sender
one
parents: 9
diff changeset
32 Thread.sleep(timeout/4);
9
95d58cc5bb0b instance for test, multiple senders
one
parents: 5
diff changeset
33 for(int i=0;i<wbs.length;i++) wbs[i] = new WifiMulticast(i,MCASTADDR,port,WifiReceiver.SocketType.Sender);
1
649b8573372c cleanup
one
parents: 0
diff changeset
34 } else if (mchannel) {
10
fc180f38257e multiple sender
one
parents: 9
diff changeset
35 for(int i=0;i<wbr.length;i++) wbr[i] = new WifiMulticastChannel(i,MCASTADDR,port,WifiReceiver.SocketType.Receiver);
fc180f38257e multiple sender
one
parents: 9
diff changeset
36 Thread.sleep(timeout/4);
12
e1f43b669cdb broadcast on DatagramChannel
one
parents: 10
diff changeset
37 for(int i=0;i<wbs.length;i++) wbs[i] = new WifiMulticastChannel(i,MCASTADDR,port,WifiReceiver.SocketType.Sender);
e1f43b669cdb broadcast on DatagramChannel
one
parents: 10
diff changeset
38 } else if (bchannel) {
e1f43b669cdb broadcast on DatagramChannel
one
parents: 10
diff changeset
39 for(int i=0;i<wbr.length;i++) wbr[i] = new WifiBroadcastChannel(i,port,WifiReceiver.SocketType.Receiver);
e1f43b669cdb broadcast on DatagramChannel
one
parents: 10
diff changeset
40 Thread.sleep(timeout/4);
e1f43b669cdb broadcast on DatagramChannel
one
parents: 10
diff changeset
41 for(int i=0;i<wbs.length;i++) wbs[i] = new WifiBroadcastChannel(i,port,WifiReceiver.SocketType.Sender);
0
df9d16620c08 Wifi broad cast test program
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
42 } else {
10
fc180f38257e multiple sender
one
parents: 9
diff changeset
43 for(int i=0;i<wbr.length;i++) wbr[i] = new WifiBroadcast(i,port,WifiReceiver.SocketType.Receiver);
fc180f38257e multiple sender
one
parents: 9
diff changeset
44 Thread.sleep(timeout/4);
9
95d58cc5bb0b instance for test, multiple senders
one
parents: 5
diff changeset
45 for(int i=0;i<wbs.length;i++) wbs[i] = new WifiBroadcast(i,port,WifiReceiver.SocketType.Sender);
0
df9d16620c08 Wifi broad cast test program
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
46 }
df9d16620c08 Wifi broad cast test program
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
47 } catch (IOException e) {
3
9c99e2193277 find broadcast
one
parents: 2
diff changeset
48 System.err.println("err "+e);
9c99e2193277 find broadcast
one
parents: 2
diff changeset
49 } catch (InterruptedException e) {
9c99e2193277 find broadcast
one
parents: 2
diff changeset
50 System.err.println("err "+e);
0
df9d16620c08 Wifi broad cast test program
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
51 }
9
95d58cc5bb0b instance for test, multiple senders
one
parents: 5
diff changeset
52 runTest(count, wbr, wbs);
95d58cc5bb0b instance for test, multiple senders
one
parents: 5
diff changeset
53
95d58cc5bb0b instance for test, multiple senders
one
parents: 5
diff changeset
54 }
95d58cc5bb0b instance for test, multiple senders
one
parents: 5
diff changeset
55
95d58cc5bb0b instance for test, multiple senders
one
parents: 5
diff changeset
56 public void options(String[] args) {
95d58cc5bb0b instance for test, multiple senders
one
parents: 5
diff changeset
57 for(int i=0;i<args.length;i++) {
12
e1f43b669cdb broadcast on DatagramChannel
one
parents: 10
diff changeset
58 switch(args[i]) {
e1f43b669cdb broadcast on DatagramChannel
one
parents: 10
diff changeset
59 case "-m": multicast = true; break;
e1f43b669cdb broadcast on DatagramChannel
one
parents: 10
diff changeset
60 case "-channel": mchannel = true; break;
e1f43b669cdb broadcast on DatagramChannel
one
parents: 10
diff changeset
61 case "-bchannel": bchannel = true; break;
e1f43b669cdb broadcast on DatagramChannel
one
parents: 10
diff changeset
62 case "-r": i++; receiver_count = getOptInt(args, receiver_count, i); wbr = new WifiReceiver[receiver_count]; break;
e1f43b669cdb broadcast on DatagramChannel
one
parents: 10
diff changeset
63 case "-s": i++; sender_count = getOptInt(args, sender_count, i); wbs = new WifiReceiver[sender_count]; break;
e1f43b669cdb broadcast on DatagramChannel
one
parents: 10
diff changeset
64 case "-c": i++; count = getOptInt(args, count, i); break;
e1f43b669cdb broadcast on DatagramChannel
one
parents: 10
diff changeset
65 case "-t": i++; timeout = getOptInt(args, (int) timeout, i); break;
e1f43b669cdb broadcast on DatagramChannel
one
parents: 10
diff changeset
66 case "-T": i++; testSize = getOptInt(args, testSize, i); break;
e1f43b669cdb broadcast on DatagramChannel
one
parents: 10
diff changeset
67 case "-p": i++; port = getOptInt(args, port, i); break;
e1f43b669cdb broadcast on DatagramChannel
one
parents: 10
diff changeset
68 case "-a": i++; MCASTADDR = getOptString(args, MCASTADDR, i); break;
e1f43b669cdb broadcast on DatagramChannel
one
parents: 10
diff changeset
69 default: i++;
e1f43b669cdb broadcast on DatagramChannel
one
parents: 10
diff changeset
70 System.out.println(
e1f43b669cdb broadcast on DatagramChannel
one
parents: 10
diff changeset
71 "(default) Broadcast DatagramSocket\n"+
e1f43b669cdb broadcast on DatagramChannel
one
parents: 10
diff changeset
72 "-m Multicast DatagramSocket\n"+
e1f43b669cdb broadcast on DatagramChannel
one
parents: 10
diff changeset
73 "-cahnnel Multicast with DatagramChannel\n"+
e1f43b669cdb broadcast on DatagramChannel
one
parents: 10
diff changeset
74 "-bcahnnel Broadcase with DatagramChannel\n"+
e1f43b669cdb broadcast on DatagramChannel
one
parents: 10
diff changeset
75 "-r N create N receivers\n"+
e1f43b669cdb broadcast on DatagramChannel
one
parents: 10
diff changeset
76 "-s N create N senders\n"+
e1f43b669cdb broadcast on DatagramChannel
one
parents: 10
diff changeset
77 "-c N send count packet\n"+
e1f43b669cdb broadcast on DatagramChannel
one
parents: 10
diff changeset
78 "-t N timeout N msec\n"+
e1f43b669cdb broadcast on DatagramChannel
one
parents: 10
diff changeset
79 "-T N send N byte packet\n"+
e1f43b669cdb broadcast on DatagramChannel
one
parents: 10
diff changeset
80 "-p N broadcast/multicast port\n"+
e1f43b669cdb broadcast on DatagramChannel
one
parents: 10
diff changeset
81 "-a S broadcast/multicast address\n"+
e1f43b669cdb broadcast on DatagramChannel
one
parents: 10
diff changeset
82 "-h print this\n"+
e1f43b669cdb broadcast on DatagramChannel
one
parents: 10
diff changeset
83 ""
e1f43b669cdb broadcast on DatagramChannel
one
parents: 10
diff changeset
84 );
14
one
parents: 12
diff changeset
85 return;
12
e1f43b669cdb broadcast on DatagramChannel
one
parents: 10
diff changeset
86 }
5
7679d10bdae9 multiple receivers
one
parents: 4
diff changeset
87 }
0
df9d16620c08 Wifi broad cast test program
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
88 }
df9d16620c08 Wifi broad cast test program
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
89
df9d16620c08 Wifi broad cast test program
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
90
df9d16620c08 Wifi broad cast test program
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
91
9
95d58cc5bb0b instance for test, multiple senders
one
parents: 5
diff changeset
92 public void runTest(int count, WifiReceiver[] wbr, WifiReceiver wbs[]) {
95d58cc5bb0b instance for test, multiple senders
one
parents: 5
diff changeset
93 Thread t = timeouter();
95d58cc5bb0b instance for test, multiple senders
one
parents: 5
diff changeset
94 Thread send[] = new Thread[wbs.length];
95d58cc5bb0b instance for test, multiple senders
one
parents: 5
diff changeset
95 int id = 0;
95d58cc5bb0b instance for test, multiple senders
one
parents: 5
diff changeset
96 for(WifiReceiver s:wbs) {
95d58cc5bb0b instance for test, multiple senders
one
parents: 5
diff changeset
97 send[id]= sender(s,count);
95d58cc5bb0b instance for test, multiple senders
one
parents: 5
diff changeset
98 id ++;
95d58cc5bb0b instance for test, multiple senders
one
parents: 5
diff changeset
99 }
95d58cc5bb0b instance for test, multiple senders
one
parents: 5
diff changeset
100 id = 0;
95d58cc5bb0b instance for test, multiple senders
one
parents: 5
diff changeset
101 Thread recv[] = new Thread[wbr.length];
95d58cc5bb0b instance for test, multiple senders
one
parents: 5
diff changeset
102 for(WifiReceiver r: wbr) {
95d58cc5bb0b instance for test, multiple senders
one
parents: 5
diff changeset
103 recv[id] = receiver(r,id, count, timeout);
95d58cc5bb0b instance for test, multiple senders
one
parents: 5
diff changeset
104 id ++;
95d58cc5bb0b instance for test, multiple senders
one
parents: 5
diff changeset
105 }
95d58cc5bb0b instance for test, multiple senders
one
parents: 5
diff changeset
106 try {
95d58cc5bb0b instance for test, multiple senders
one
parents: 5
diff changeset
107 for(int i = 0;i<wbr.length;i++) {
95d58cc5bb0b instance for test, multiple senders
one
parents: 5
diff changeset
108 recv[i].join();
95d58cc5bb0b instance for test, multiple senders
one
parents: 5
diff changeset
109 }
95d58cc5bb0b instance for test, multiple senders
one
parents: 5
diff changeset
110 for(int i = 0;i<wbs.length;i++) {
95d58cc5bb0b instance for test, multiple senders
one
parents: 5
diff changeset
111 send[i].join();
95d58cc5bb0b instance for test, multiple senders
one
parents: 5
diff changeset
112 }
95d58cc5bb0b instance for test, multiple senders
one
parents: 5
diff changeset
113 t.join();
95d58cc5bb0b instance for test, multiple senders
one
parents: 5
diff changeset
114 } catch (InterruptedException e) {
95d58cc5bb0b instance for test, multiple senders
one
parents: 5
diff changeset
115 }
95d58cc5bb0b instance for test, multiple senders
one
parents: 5
diff changeset
116 }
95d58cc5bb0b instance for test, multiple senders
one
parents: 5
diff changeset
117
95d58cc5bb0b instance for test, multiple senders
one
parents: 5
diff changeset
118
95d58cc5bb0b instance for test, multiple senders
one
parents: 5
diff changeset
119
95d58cc5bb0b instance for test, multiple senders
one
parents: 5
diff changeset
120 public int getOptInt(String[] args, int count, int i) {
0
df9d16620c08 Wifi broad cast test program
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
121 if (i<args.length) { count = Integer.parseInt(args[i]); }
df9d16620c08 Wifi broad cast test program
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
122 return count;
df9d16620c08 Wifi broad cast test program
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
123 }
df9d16620c08 Wifi broad cast test program
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
124
12
e1f43b669cdb broadcast on DatagramChannel
one
parents: 10
diff changeset
125 public String getOptString(String[] args, String str, int i) {
e1f43b669cdb broadcast on DatagramChannel
one
parents: 10
diff changeset
126 if (i<args.length) { str = args[i]; }
e1f43b669cdb broadcast on DatagramChannel
one
parents: 10
diff changeset
127 return str;
e1f43b669cdb broadcast on DatagramChannel
one
parents: 10
diff changeset
128 }
0
df9d16620c08 Wifi broad cast test program
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
129
9
95d58cc5bb0b instance for test, multiple senders
one
parents: 5
diff changeset
130 public Thread sender(final WifiReceiver wbs, final int count) {
0
df9d16620c08 Wifi broad cast test program
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
131 Runnable sender = new Runnable() {
3
9c99e2193277 find broadcast
one
parents: 2
diff changeset
132
0
df9d16620c08 Wifi broad cast test program
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
133 @Override
df9d16620c08 Wifi broad cast test program
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
134 public void run() {
3
9c99e2193277 find broadcast
one
parents: 2
diff changeset
135 ByteBuffer testData = getTestData(testSize);
9c99e2193277 find broadcast
one
parents: 2
diff changeset
136 int i = 0;
0
df9d16620c08 Wifi broad cast test program
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
137 try {
4
404778ac3f55 worked. Broadcast, Multicast, Multicast channel.
one
parents: 3
diff changeset
138 Thread.sleep(timeout);
3
9c99e2193277 find broadcast
one
parents: 2
diff changeset
139 for(i = 0; i<count;i++) {
0
df9d16620c08 Wifi broad cast test program
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
140 testData.putInt(0, i);
df9d16620c08 Wifi broad cast test program
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
141 wbs.send(testData);
2
2a328333ba70 no compile errors
one
parents: 1
diff changeset
142 testData.flip();
0
df9d16620c08 Wifi broad cast test program
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
143 }
3
9c99e2193277 find broadcast
one
parents: 2
diff changeset
144 } catch (Exception e) {
9c99e2193277 find broadcast
one
parents: 2
diff changeset
145 System.err.println("sender error at "+i+" "+e);
0
df9d16620c08 Wifi broad cast test program
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
146 }
df9d16620c08 Wifi broad cast test program
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
147 }
df9d16620c08 Wifi broad cast test program
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
148 };
2
2a328333ba70 no compile errors
one
parents: 1
diff changeset
149 Thread s = new Thread(sender);
2a328333ba70 no compile errors
one
parents: 1
diff changeset
150 s.start();
9
95d58cc5bb0b instance for test, multiple senders
one
parents: 5
diff changeset
151 return s;
0
df9d16620c08 Wifi broad cast test program
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
152 }
df9d16620c08 Wifi broad cast test program
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
153
9
95d58cc5bb0b instance for test, multiple senders
one
parents: 5
diff changeset
154 private boolean running;
1
649b8573372c cleanup
one
parents: 0
diff changeset
155
9
95d58cc5bb0b instance for test, multiple senders
one
parents: 5
diff changeset
156 public Thread timeouter() {
1
649b8573372c cleanup
one
parents: 0
diff changeset
157 running = true;
649b8573372c cleanup
one
parents: 0
diff changeset
158 Runnable timeouter = new Runnable() {
649b8573372c cleanup
one
parents: 0
diff changeset
159 @Override
649b8573372c cleanup
one
parents: 0
diff changeset
160 public void run() {
649b8573372c cleanup
one
parents: 0
diff changeset
161 try {
649b8573372c cleanup
one
parents: 0
diff changeset
162 Thread.sleep(30*1000);
649b8573372c cleanup
one
parents: 0
diff changeset
163 } catch (InterruptedException e) {
649b8573372c cleanup
one
parents: 0
diff changeset
164 }
649b8573372c cleanup
one
parents: 0
diff changeset
165 running = false;
649b8573372c cleanup
one
parents: 0
diff changeset
166 }
649b8573372c cleanup
one
parents: 0
diff changeset
167 };
9
95d58cc5bb0b instance for test, multiple senders
one
parents: 5
diff changeset
168 Thread t = new Thread(timeouter); t.start();
95d58cc5bb0b instance for test, multiple senders
one
parents: 5
diff changeset
169 return t;
95d58cc5bb0b instance for test, multiple senders
one
parents: 5
diff changeset
170 }
95d58cc5bb0b instance for test, multiple senders
one
parents: 5
diff changeset
171
95d58cc5bb0b instance for test, multiple senders
one
parents: 5
diff changeset
172 public Thread receiver(final WifiReceiver wbr, final int id, final int count, final long timeout) {
95d58cc5bb0b instance for test, multiple senders
one
parents: 5
diff changeset
173
1
649b8573372c cleanup
one
parents: 0
diff changeset
174 Runnable receiver = new Runnable() {
0
df9d16620c08 Wifi broad cast test program
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
175 @Override
df9d16620c08 Wifi broad cast test program
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
176 public void run() {
df9d16620c08 Wifi broad cast test program
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
177 ByteBuffer testData = ByteBuffer.allocate(4096);
3
9c99e2193277 find broadcast
one
parents: 2
diff changeset
178 int bad = 0, good = 0;
0
df9d16620c08 Wifi broad cast test program
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
179 try {
1
649b8573372c cleanup
one
parents: 0
diff changeset
180 for(int i = 0; running && i<count;i++) {
2
2a328333ba70 no compile errors
one
parents: 1
diff changeset
181 testData.clear();
0
df9d16620c08 Wifi broad cast test program
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
182 wbr.recieve(testData,timeout);
2
2a328333ba70 no compile errors
one
parents: 1
diff changeset
183 if (!testData.hasRemaining()) continue;
5
7679d10bdae9 multiple receivers
one
parents: 4
diff changeset
184 System.out.println("receive id"+id+":"+testData.remaining()+" bytes.");
0
df9d16620c08 Wifi broad cast test program
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
185 int seq = testData.getInt();
df9d16620c08 Wifi broad cast test program
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
186 if (seq!=i) {
df9d16620c08 Wifi broad cast test program
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
187 bad++; i = seq;
3
9c99e2193277 find broadcast
one
parents: 2
diff changeset
188 } else {
9c99e2193277 find broadcast
one
parents: 2
diff changeset
189 good++;
0
df9d16620c08 Wifi broad cast test program
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
190 }
df9d16620c08 Wifi broad cast test program
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
191 }
3
9c99e2193277 find broadcast
one
parents: 2
diff changeset
192 } catch (Exception e) {
9c99e2193277 find broadcast
one
parents: 2
diff changeset
193 System.err.println("receiver error "+e);
0
df9d16620c08 Wifi broad cast test program
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
194 }
3
9c99e2193277 find broadcast
one
parents: 2
diff changeset
195 System.out.println("get "+good+" packets, "+bad+" losts.");
0
df9d16620c08 Wifi broad cast test program
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
196 }
df9d16620c08 Wifi broad cast test program
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
197 };
2
2a328333ba70 no compile errors
one
parents: 1
diff changeset
198 Thread r = new Thread(receiver); r.start();
9
95d58cc5bb0b instance for test, multiple senders
one
parents: 5
diff changeset
199 return r;
0
df9d16620c08 Wifi broad cast test program
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
200 }
df9d16620c08 Wifi broad cast test program
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
201
9
95d58cc5bb0b instance for test, multiple senders
one
parents: 5
diff changeset
202 public ByteBuffer getTestData(int i) {
0
df9d16620c08 Wifi broad cast test program
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
203 ByteBuffer b = ByteBuffer.allocate(i);
df9d16620c08 Wifi broad cast test program
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
204 b.putInt(0);
df9d16620c08 Wifi broad cast test program
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
205 for(int j = 0; j<256; j++ ) {
df9d16620c08 Wifi broad cast test program
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
206 b.put((byte)j);
df9d16620c08 Wifi broad cast test program
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
207 if (! b.hasRemaining()) break;
df9d16620c08 Wifi broad cast test program
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
208 if (j == 255) j=0;
df9d16620c08 Wifi broad cast test program
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
209 }
df9d16620c08 Wifi broad cast test program
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
210 b.flip();
df9d16620c08 Wifi broad cast test program
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
211 return b;
df9d16620c08 Wifi broad cast test program
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
212 }
df9d16620c08 Wifi broad cast test program
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
213 }