Mercurial > hg > Members > kono > WifiBroadcast
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 |
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 | 5 import java.net.DatagramPacket; |
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 | 9 public class WifiMulticast implements WifiReceiver { |
10 private MulticastSocket soc; | |
11 private InetAddress mAddr; | |
12 private int port; | |
13 | |
9 | 14 public WifiMulticast(int id, String mCASTADDR, int port, SocketType sender) throws IOException { |
3 | 15 this.port = port; |
16 try { | |
17 mAddr = InetAddress.getByName(mCASTADDR); | |
18 soc = new MulticastSocket(port); | |
19 soc.joinGroup(mAddr); | |
20 } catch (IOException e) { | |
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 | 25 @Override |
26 public void recieve(ByteBuffer testData, long timeout) throws IOException { | |
27 DatagramPacket packet = new DatagramPacket(testData.array(),testData.capacity()); | |
28 soc.receive(packet); | |
29 testData.limit(packet.getLength()); | |
30 testData.position(0); | |
31 } | |
32 | |
33 @Override | |
34 public void send(ByteBuffer testData) throws IOException { | |
35 DatagramPacket sendPacket = new DatagramPacket(testData.array(), testData.limit(),mAddr, port); | |
36 soc.send(sendPacket); | |
37 testData.position(testData.limit()); | |
38 } | |
39 | |
40 } | |
41 |