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

tcp
author one
date Mon, 30 Jul 2012 14:04:22 +0900
parents 9bf4bf393e4e
children 313dc81af36c
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
one
parents:
diff changeset
15 selectMode = false;
14
one
parents: 13
diff changeset
16 selector = SelectorProvider.provider().openSelector();
one
parents: 13
diff changeset
17 dc = SelectorProvider.provider().openDatagramChannel(StandardProtocolFamily.INET);
one
parents: 13
diff changeset
18 dc.setOption(StandardSocketOptions.SO_REUSEADDR, true);
13
one
parents:
diff changeset
19 mAddr = WifiBroadcast.getBroadcast();
one
parents:
diff changeset
20 sAddr = new InetSocketAddress(mAddr,port);
one
parents:
diff changeset
21 dc.setOption(StandardSocketOptions.SO_BROADCAST, true);
one
parents:
diff changeset
22 if (sender == SocketType.Receiver) {
one
parents:
diff changeset
23 dc.bind(new InetSocketAddress(port));
one
parents:
diff changeset
24 if (selectMode) {
one
parents:
diff changeset
25 dc.configureBlocking(false);
one
parents:
diff changeset
26 dc.register(selector, SelectionKey.OP_READ);
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
one
parents:
diff changeset
32 }