All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.github.mrstampy.kitchensync.test.BroadcastTester Maven / Gradle / Ivy

The newest version!
/*
 * KitchenSync-core Java Library Copyright (C) 2014 Burton Alexander
 * 
 * This program is free software; you can redistribute it and/or modify it under
 * the terms of the GNU General Public License as published by the Free Software
 * Foundation; either version 2 of the License, or (at your option) any later
 * version.
 * 
 * This program is distributed in the hope that it will be useful, but WITHOUT
 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
 * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
 * details.
 * 
 * You should have received a copy of the GNU General Public License along with
 * this program; if not, write to the Free Software Foundation, Inc., 51
 * Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
 * 
 */
package com.github.mrstampy.kitchensync.test;

import io.netty.channel.ChannelFuture;
import io.netty.util.concurrent.GenericFutureListener;

import java.net.UnknownHostException;

import com.github.mrstampy.kitchensync.netty.channel.KiSyMulticastChannel;
import com.github.mrstampy.kitchensync.test.channel.StringMulticastChannel;

/**
 * Tests multicast broadcasting by creating 3 channels and having one leave the
 * group to send a message to the other two. This test will not run on a
 * computer not connected to a network.
*
* * IPv6 addresses * must be used. See the IPv6 Multicast Address Space Registry for more information. */ public class BroadcastTester extends AbstractTester { private static final String MULTICAST_IP = "FF05:0:0548:c4e6:796c:0:de66:FC"; private static final int MULTICAST_PORT = 57962; private KiSyMulticastChannel michael; private KiSyMulticastChannel robert; private KiSyMulticastChannel paul; private void init() throws UnknownHostException { michael = createMulticastChannel(); robert = createMulticastChannel(); paul = createMulticastChannel(); } /** * Execute. */ public void execute() { michael.leaveGroup(); ChannelFuture cf = michael.broadcast("A good day to you all!"); cf.addListener(new GenericFutureListener() { @Override public void operationComplete(ChannelFuture future) throws Exception { michael.joinGroup(); } }); } /** * Creates the multicast channel. * * @return the default ki sy multicast channel * @throws UnknownHostException * the unknown host exception */ protected KiSyMulticastChannel createMulticastChannel() throws UnknownHostException { StringMulticastChannel channel = new StringMulticastChannel(MULTICAST_IP, MULTICAST_PORT); channel.bind(); channel.joinGroup(); return channel; } /** * The main method. * * @param args * the args * @throws Exception * the exception */ public static void main(String[] args) throws Exception { BroadcastTester tester = new BroadcastTester(); tester.init(); tester.execute(); } }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy