@Override
	public void run() {

		stdIn = new BufferedReader(new InputStreamReader(System.in));
		String userInput;

		try {
			
			while (exit == false && ((userInput = stdIn.readLine()) != null)) {
				processInput(userInput);
			}
			// stutdown when exit
			if (exit == true) {

				stdIn.close();

				// propper shutdown of the ExecutorService
				Main_Client.clientExecutionService.shutdown(); // Disable new
																// tasks from
																// being
																// submitted
				try {
					// Wait a while for existing tasks to terminate
					if (!Main_Client.clientExecutionService.awaitTermination(3,
							TimeUnit.SECONDS)) {
						Main_Client.clientExecutionService.shutdownNow(); // Cancel
																			// currently
																			// executing
																			// tasks
						// Wait a while for tasks to respond to being cancelled
						if (!Main_Client.clientExecutionService
								.awaitTermination(3, TimeUnit.SECONDS))
							System.err.println("Pool did not terminate");
					}
				} catch (InterruptedException ie) {
					// (Re-)Cancel if current thread also interrupted
					Main_Client.clientExecutionService.shutdownNow();
					// Preserve interrupt status
					Thread.currentThread().interrupt();
				}

				client.shutdown();
			}
		} catch (IOException e) {
			System.out.println("Error: Failed to read from stdIn!");
		}
	}