annotate src/wifibroadcast/WifiBroadcastChannel.java @ 23:4c3908c8b761

fix
author one
date Sat, 01 Sep 2012 17:36:44 +0900
parents 313dc81af36c
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
13
one
parents:
diff changeset
1 package wifibroadcast;
one
parents:
diff changeset
2
one
parents:
diff changeset
3 import java.io.IOException;
one
parents:
diff changeset
4 import java.net.InetSocketAddress;
one
parents:
diff changeset
5 import java.net.StandardProtocolFamily;
one
parents:
diff changeset
6 import java.net.StandardSocketOptions;
one
parents:
diff changeset
7 import java.nio.channels.SelectionKey;
one
parents:
diff changeset
8 import java.nio.channels.spi.SelectorProvider;
one
parents:
diff changeset
9
one
parents:
diff changeset
10 public class WifiBroadcastChannel extends WifiMulticastChannel {
one
parents:
diff changeset
11
one
parents:
diff changeset
12 public WifiBroadcastChannel(int id, int port, SocketType sender) throws IOException {
one
parents:
diff changeset
13 // join multicast group on this interface, and also use this
one
parents:
diff changeset
14 // interface for outgoing multicast datagrams
14
one
parents: 13
diff changeset
15 selector = SelectorProvider.provider().openSelector();
one
parents: 13
diff changeset
16 dc = SelectorProvider.provider().openDatagramChannel(StandardProtocolFamily.INET);
one
parents: 13
diff changeset
17 dc.setOption(StandardSocketOptions.SO_REUSEADDR, true);
13
one
parents:
diff changeset
18 mAddr = WifiBroadcast.getBroadcast();
one
parents:
diff changeset
19 sAddr = new InetSocketAddress(mAddr,port);
one
parents:
diff changeset
20 dc.setOption(StandardSocketOptions.SO_BROADCAST, true);
one
parents:
diff changeset
21 if (sender == SocketType.Receiver) {
one
parents:
diff changeset
22 dc.bind(new InetSocketAddress(port));
one
parents:
diff changeset
23 if (selectMode) {
one
parents:
diff changeset
24 dc.configureBlocking(false);
one
parents:
diff changeset
25 dc.register(selector, SelectionKey.OP_READ);
one
parents:
diff changeset
26 }
one
parents:
diff changeset
27 }
one
parents:
diff changeset
28 }
one
parents:
diff changeset
29
one
parents:
diff changeset
30
one
parents:
diff changeset
31 }