www.pudn.com > jnp-src.rar > MixedcastChat.java


/*
 * 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 : :"); 
 
    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 (); 
  } 
}