private void runServer() throws IOException {
		// pre startup message
		ServerSocket serverSocket = new ServerSocket(PORTNUM);
		serverSocket.setSoTimeout(TIMEOUT);
		serverDirectoryCheck();
		
		System.out.println("Server: Server has started broadcast on port " + PORTNUM + " and is waiting for connections...");
		System.out.println("Server: Type '-q' or 'quit' or 'exit' anytime to shutdown server");
		
		// Set up variables for reading quit message
		BufferedReader bufferedPromptReader = new BufferedReader(new InputStreamReader(System.in));
		EXIT_COMMAND cmd = EXIT_COMMAND.CONTINUE;
		
		// Input / client accepting loop
		do {
			try {
				Socket socket = serverSocket.accept();
				ServerThread thread = new ServerThread(socket);
				thread.start();
				threadList.add(thread); 
			} catch (SocketTimeoutException e) {;} // Do nothing
		
			if(bufferedPromptReader.ready()) {
				cmd = EXIT_COMMAND.getCommand(bufferedPromptReader.readLine());
				if(cmd.equals(EXIT_COMMAND.CONTINUE)) {
					System.out.println("Server: Type 'exit', '-q' or 'quit' to close server");
				}
			}
		} while(cmd.equals(EXIT_COMMAND.CONTINUE));

		// server close message
		System.out.println("Server: Closing all client connections...");
		for(ServerThread thread: threadList) {
			thread.close();
		}
		
		serverSocket.close();
		System.out.println("Server: Server shut down...");
	}