annotate src/wifibroadcast/WifiMulticast.java @ 12:e1f43b669cdb

broadcast on DatagramChannel
author one
date Sun, 29 Jul 2012 14:37:12 +0900
parents 95d58cc5bb0b
children bb2538b7eb8d
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;
3
9c99e2193277 find broadcast
one
parents: 2
diff changeset
5 import java.net.DatagramPacket;
9c99e2193277 find broadcast
one
parents: 2
diff changeset
6 import java.net.InetAddress;
0
df9d16620c08 Wifi broad cast test program
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
7 import java.net.MulticastSocket;
df9d16620c08 Wifi broad cast test program
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
8
3
9c99e2193277 find broadcast
one
parents: 2
diff changeset
9 public class WifiMulticast implements WifiReceiver {
9c99e2193277 find broadcast
one
parents: 2
diff changeset
10 private MulticastSocket soc;
9c99e2193277 find broadcast
one
parents: 2
diff changeset
11 private InetAddress mAddr;
9c99e2193277 find broadcast
one
parents: 2
diff changeset
12 private int port;
9c99e2193277 find broadcast
one
parents: 2
diff changeset
13
9
95d58cc5bb0b instance for test, multiple senders
one
parents: 6
diff changeset
14 public WifiMulticast(int id, String mCASTADDR, int port, SocketType sender) throws IOException {
3
9c99e2193277 find broadcast
one
parents: 2
diff changeset
15 this.port = port;
9c99e2193277 find broadcast
one
parents: 2
diff changeset
16 try {
9c99e2193277 find broadcast
one
parents: 2
diff changeset
17 mAddr = InetAddress.getByName(mCASTADDR);
9c99e2193277 find broadcast
one
parents: 2
diff changeset
18 soc = new MulticastSocket(port);
9c99e2193277 find broadcast
one
parents: 2
diff changeset
19 soc.joinGroup(mAddr);
9c99e2193277 find broadcast
one
parents: 2
diff changeset
20 } catch (IOException e) {
9c99e2193277 find broadcast
one
parents: 2
diff changeset
21 e.printStackTrace();
0
df9d16620c08 Wifi broad cast test program
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
22 }
df9d16620c08 Wifi broad cast test program
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
23 }
df9d16620c08 Wifi broad cast test program
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
24
3
9c99e2193277 find broadcast
one
parents: 2
diff changeset
25 @Override
9c99e2193277 find broadcast
one
parents: 2
diff changeset
26 public void recieve(ByteBuffer testData, long timeout) throws IOException {
9c99e2193277 find broadcast
one
parents: 2
diff changeset
27 DatagramPacket packet = new DatagramPacket(testData.array(),testData.capacity());
9c99e2193277 find broadcast
one
parents: 2
diff changeset
28 soc.receive(packet);
9c99e2193277 find broadcast
one
parents: 2
diff changeset
29 testData.limit(packet.getLength());
9c99e2193277 find broadcast
one
parents: 2
diff changeset
30 testData.position(0);
9c99e2193277 find broadcast
one
parents: 2
diff changeset
31 }
9c99e2193277 find broadcast
one
parents: 2
diff changeset
32
9c99e2193277 find broadcast
one
parents: 2
diff changeset
33 @Override
9c99e2193277 find broadcast
one
parents: 2
diff changeset
34 public void send(ByteBuffer testData) throws IOException {
9c99e2193277 find broadcast
one
parents: 2
diff changeset
35 DatagramPacket sendPacket = new DatagramPacket(testData.array(), testData.limit(),mAddr, port);
9c99e2193277 find broadcast
one
parents: 2
diff changeset
36 soc.send(sendPacket);
9c99e2193277 find broadcast
one
parents: 2
diff changeset
37 testData.position(testData.limit());
9c99e2193277 find broadcast
one
parents: 2
diff changeset
38 }
9c99e2193277 find broadcast
one
parents: 2
diff changeset
39
9c99e2193277 find broadcast
one
parents: 2
diff changeset
40 }
9c99e2193277 find broadcast
one
parents: 2
diff changeset
41