background image

 
public class UDPSend {
  public static final String usage =
  "Usage: java UDPSend ...\n" +
  " or: java UDPSend -f ";
  public static void main(String args[]) {
  try {
  // Check the number of arguments

  if (args.length < 3)
  throw new IllegalArgumentException("Wrong number of args");
  // Parse the arguments

  String host = args[0];
  int port = Integer.parseInt(args[1]);
  // Figure out the message to send.
  // If the third argument is -f, then send the contents of the file
  // specified as the fourth argument. Otherwise, concatenate the
  // third and all remaining arguments and send that.

  byte[] message;
  if (args[2].equals("-f")) {
  File f = new File(args[3]);
  int len = (int)f.length(); // figure out how big the file is

  message = new byte[len]; // create a buffer big enough

  FileInputStream in = new FileInputStream(f);
  int bytes_read = 0, n;
  do { // loop until we've read it all

  n = in.read(message, bytes_read, len-bytes_read);
  bytes_read += n;
  } while((bytes_read < len)&& (n != -1));
  }
  else { // Otherwise, just combine all the remaining arguments.

  String msg = args[2];
  for (int i = 3; i < args.length; i++) msg += " " + args[i];
  message = msg.getBytes();
  }
  // Get the internet address of the specified host