Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public class CMDParser {
- //set soSocTimeout
- //Receive
- static boolean smode; //sender mode
- static boolean rmode; //receiver mode
- static String clientfile; //-i [filename]; file to be sent from client to host
- static String hostfile; //-o [filename]; file to be sent from host to sender
- static boolean ifile; //ifile can only be active if in sender mode
- static boolean ofile; //ofile can only be active if in receiver mode
- static String targethost; //-T [hostname]; connecting host for receiver
- static int windowsize; //-w [number]; size of window
- static int timeout = 200; //-t [milliseconds]; timeout in milliseconds
- static int payload = 512; //-m [bytes]; size of payload in bytes
- public static void main(String[] args)
- {
- try
- {
- validateArgs(args);
- if ((!smode) || (!rmode))
- {
- System.out.println("Arguments Successfully Parsed!");
- if (smode)
- {
- Sender s = new Sender(clientfile, targethost, windowsize, timeout, payload);
- s.run();
- }
- else
- {
- Receiver r = new Receiver(hostfile, targethost, windowsize, timeout, payload);
- r.run();
- }
- }
- else
- {
- System.out.println("No mode specified!");
- }
- System.exit(0);
- }
- catch (Exception e)
- {
- e.printStackTrace();
- }
- }
- private static void validateArgs(String[] args)
- {
- if (args.length == 0)
- {
- System.out.println("No arguments specified");
- System.exit(0);
- }
- else if ((args.length != 5) && (args.length != 7) && (args.length != 9) && (args.length != 11))
- {
- System.out.println("Invalid arguments");
- System.exit(0);
- }
- else
- {
- for (int i = 0; i < args.length; i++)
- {
- if ( !(args[i].equals("-s")) && !(args[i].equals("-r")) && !(args[i].equals("-i")) && !(args[i].equals("-o")) && !(args[i].equals("-T")) && !(args[i].equals("-w")) && !(args[i].equals("-t")) && !(args[i].equals("-m")) ){
- System.out.println("No valid argument specified!");
- System.exit(0);
- }
- if (args[i].equals("-s")) {
- if (!rmode) { smode = true; System.out.println("Sender mode activated.");} else { System.out.println("Receiver mode already declared!"); System.exit(0); } //sender
- }else if (args[i].equals("-r")){
- if (!smode) { rmode = true; System.out.println("Receiver mode activated.");} else { System.out.println("Sender mode already declared!"); System.exit(0); } //receiver
- }else{
- if (args[i].equals("-i")){
- if ((!ofile) && (!rmode)) { clientfile = new String(args[i+1]); System.out.println("Client file is " + clientfile);} else { System.out.println("'-i' is not compatible with receiver mode!"); System.exit(0); }
- }else if (args[i].equals("-o")){
- if ((!ifile) && (!smode)) { hostfile = new String(args[i+1]); System.out.println("Host file is " + hostfile);} else { System.out.println("'-o' is not compatible with sender mode!"); System.exit(0); }
- }else if (args[i].equals("-T")){
- targethost = args[i+1];
- System.out.println("Target host is " + targethost);
- }else if (args[i].equals("-w")){
- windowsize = Integer.parseInt(args[i+1]);
- System.out.println("Window size is " + windowsize);
- }else if (args[i].equals("-t")){
- timeout = Integer.parseInt(args[i+1]);
- System.out.println("Timeout value is " + timeout + " milliseconds");
- }else if (args[i].equals("-m")){
- payload = Integer.parseInt(args[i+1]);
- System.out.println("Payload size is " + payload + "bytes");
- }
- i++;
- }
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement