/*
 * Java Network Programming, Second Edition
 * Merlin Hughes, Michael Shoffner, Derek Hamner
 * Manning Publications Company; ISBN 188477749X
 *
 * http://nitric.com/jnp/
 *
 * Copyright (c) 1997-1999 Merlin Hughes, Michael Shoffner, Derek Hamner;
 * all rights reserved; see license.txt for details.
 */

import java.io.*;
import java.net.*;
import java.awt.*;

public class MixedcastChat extends MulticastChat {
  protected InetAddress server;
  protected int serverPort;
  
  public MixedcastChat (InetAddress group, int port, InetAddress server, int serverPort) {
    super (group, port);
    this.server = server;
    this.serverPort = serverPort;
    frame.setTitle ("MixedcastChat [" + group.getHostAddress () + ":" + port +
                    "/" + server.getHostName () + ":" + serverPort + "]");
  }

  protected void initNet () throws IOException {
    super.initNet ();
    outgoing.setAddress (server);
    outgoing.setPort (serverPort);
  }

  public static void main (String[] args) throws IOException {
    if ((args.length != 2) || (args[0].indexOf (":") < 0) ||
        (args[1].indexOf (":") < 0))
      throw new IllegalArgumentException
        ("Syntax: MixedcastChat <group>:<port> <server>:<port>");

    int idx = args[0].indexOf (":");
    InetAddress group = InetAddress.getByName (args[0].substring (0, idx));
    int port = Integer.parseInt (args[0].substring (idx + 1));
    idx = args[1].indexOf (":");
    InetAddress server = InetAddress.getByName (args[1].substring (0, idx));
    int serverPort = Integer.parseInt (args[1].substring (idx + 1));
    
    MixedcastChat chat = new MixedcastChat (group, port, server, serverPort);
    chat.start ();
  }
}
