/* Chesapeake TTCP * Copyright 1997, Chesapeake Computer Consultants, Inc. */ import java.awt.*; import java.io.IOException; import java.lang.*; public class ttcp { public static void main(String args[]) { int i = 0, j; String arg; char flag; boolean tr = true; boolean usegui = true; boolean err = false; ParamsClass Params; TransThread Trans; ttcpControls thettcpControls = null; int bufsize = 0, numbuf = 0, port = 0; String host = ""; // System.err.println("Starting ttcp, args=" + args.length); if (args.length > 0) { usegui = false; } // System.err.println("usegui= " + usegui); if (!usegui) { // Command line args, so we aren't using the GUI while (i < args.length && args[i].startsWith("-")) { arg = args[i++]; if (arg.equals("-l")) { // check arguments - some require parameters if (i < args.length) bufsize = Integer.parseInt(args[i++]); else { System.err.println("-l requires a buffer length"); err = true; } } else if (arg.equals("-n")) { if (i < args.length) numbuf = Integer.parseInt(args[i++]); else { System.err.println("-n requires a number of buffers"); err = true; } } else if (arg.equals("-p")) { if (i < args.length) port = Integer.parseInt(args[i++]); else { System.err.println("-p requires a port number"); err = true; } } else if (arg.equals("-t")) { if (i < args.length) host = args[i++]; else { System.err.println("-t requires a hostname or address"); err = true; } tr = false; } else if (arg.equals("-r")) { tr = true; } else if (arg.equals("-h")) { System.out.println("Usage: java ttcp "); System.out.println(" -r Receive mode"); System.out.println(" -t Transmit mode"); System.out.println(" -l # Buffer Size (default 8192)"); System.out.println(" -n # Number of Buffers (default 1024)"); System.out.println(" -p # TCP Port Number (default 5001)"); System.out.println(" -h Print this message"); System.exit(1); } else { System.err.println("Invalid argument: " + arg); System.exit(1); } } if (err) { System.exit(1); } /* System.err.println("tr= " + tr); System.err.println("-l= " + bufsize); System.err.println("-n= " + numbuf); System.err.println("-p= " + port); System.err.println("host= " + host); */ } Params = new ParamsClass(); if (!usegui) { if (bufsize != 0) Params.setBufSize(bufsize); if (numbuf != 0) Params.setNumBuf(numbuf); if (port != 0) Params.setPort(port); if (tr == false) Params.setTR(tr); if (!host.equals("")) Params.setHost(host); } if (usegui) { // If there are no args, then use the GUI thettcpControls = new ttcpControls(Params); thettcpControls.show(); // TransThread is started from within ttcpControls } else { // Command line, set parameters Trans = new TransThread(Params, null); Trans.setPriority(Thread.NORM_PRIORITY); Trans.start(); // Wait for thread to die, then display transfer stats while (Trans.isAlive()) { try { Thread.sleep(1000L); } catch (InterruptedException e) { } } System.out.println(Params.getStats()); } } }