view src/main/java/jp/ac/uryukyu/ie/kono/wifibroadcast/WifiBroadcastChannel.java @ 27:12633f67f3cf default tip

jar
author oshiro
date Wed, 28 Nov 2018 18:28:39 +0900
parents src/main/jp/ac/uryukyu/ie/kono/wifibroadcast/WifiBroadcastChannel.java@42ecbd9364fa
children
line wrap: on
line source

package jp.ac.uryukyu.ie.kono.wifibroadcast;

import java.io.IOException;
import java.net.InetSocketAddress;
import java.net.StandardProtocolFamily;
import java.net.StandardSocketOptions;
import java.nio.channels.SelectionKey;
import java.nio.channels.spi.SelectorProvider;

public class WifiBroadcastChannel extends WifiMulticastChannel {

	public WifiBroadcastChannel(int id, int port, SocketType sender) throws IOException {
		// join multicast group on this interface, and also use this
		// interface for outgoing multicast datagrams
		selector = SelectorProvider.provider().openSelector();    
		dc = SelectorProvider.provider().openDatagramChannel(StandardProtocolFamily.INET);
		dc.setOption(StandardSocketOptions.SO_REUSEADDR, true);
		mAddr = WifiBroadcast.getBroadcast();
		sAddr = new InetSocketAddress(mAddr,port);
		dc.setOption(StandardSocketOptions.SO_BROADCAST, true);
		if (sender == SocketType.Receiver) {
			dc.bind(new InetSocketAddress(port));
			if (selectMode) {
				dc.configureBlocking(false);
				dc.register(selector, SelectionKey.OP_READ);
			}
		}
	}


}