diff --git a/README.md b/README.md index 9d4c762..a787ac4 100644 --- a/README.md +++ b/README.md @@ -10,7 +10,7 @@ Host defaults to "127.0.0.1" and port default to "5454". ctl + c to stop -##Start a Server +## Start a Server ``` java -jar Server.jar [classname] ``` diff --git a/Server/BesenBoincServer/src/Core/Starter.java b/Server/BesenBoincServer/src/Core/Starter.java index 0487547..a2db57f 100755 --- a/Server/BesenBoincServer/src/Core/Starter.java +++ b/Server/BesenBoincServer/src/Core/Starter.java @@ -7,17 +7,43 @@ import Job.JobManager; public class Starter { + /** + * + * @param args c:[classname] p:[port] + * @throws ClassNotFoundException + */ public static void main(String[] args) throws ClassNotFoundException { System.out.println("Starting BesenBoincServer..."); String classname = "Test";//load programm - if(args.length >= 1) { - classname = args[0]; + int port = BB.port; + for(String arg : args) { + if(arg.contains(":")) { + String[] split = arg.split(":",2); + if(split[0].equalsIgnoreCase("c")) { + classname = split[1]; + } else if(split[0].equalsIgnoreCase("p")) { + try { + port = Integer.parseInt(split[1]); + if(port < 0 | port > 65535) { + throw new NumberFormatException(); + } + if(port < 1024) { + System.out.println("Root required to use this port."); + } + } catch(NumberFormatException e) { + System.out.println("Thats not a valid port: " + split[1]); + } + } + } else { + System.out.println("Arguments: c:[classfile] p:[port]"); + System.exit(1); + } } Program prog = null; prog = loadProgram(classname); - Server server = (new Server()).setProgram(prog).open();//start server + Server server = (new Server()).setProgram(prog).open(port);//start server boolean run = true; Scanner s = new Scanner(System.in); while(run) { @@ -27,9 +53,9 @@ public class Starter { Server.getServer().close(); run = false; } else if(in.equalsIgnoreCase("stats")) { - JobManager jmanager = server.getProgram().jobmanager; - System.out.println("\nStats:\nTasks done : " + jmanager.jobs_done() + "\nTasks compiled: " + jmanager.jobs_compiled() + "/" + jmanager.jobs_compiledtarget() + "\nTasks enqued : " + jmanager.jobs_enqued() + "\n--------------------\ntotal : " + jmanager.jobs_total()+ "\n"); - }else { + JobManager jm = server.getProgram().jobmanager; + System.out.println("\nStats:\nTasks done : " + jm.jobs_done() + "\nTasks compiled: " + jm.jobs_compiled() + "/" + jm.jobs_compiledtarget() + "\nCurrently Compiling: " + jm.isCompiling() + "\nTasks enqued : " + jm.jobs_enqued() + "\n--------------------\ntotal : " + jm.jobs_total()+ "\nConnections: " + server.getConnectionCount()); + } else { System.out.println("unknown Command."); } }