@Override
	public void run() {
		initializeLogger();
		BufferedReader commandReader = new BufferedReader(
				new InputStreamReader(System.in));
		String commandLine;
		while (true) {
			commandLine = readLine(commandReader);

			String[] commandArgument = commandLine.split(" ");
			this.log.info("split command line: " + commandArgument.toString());

			if (commandArgument[0].compareTo(help.ClientCommand.BYE.getName()) == 0) {
				stopFileSender();
				this.commandSender.println(commandLine);
				this.log.info("Client exit 0");
				return;
			} else {
				if (!isCommandCorrect(commandArgument)) {
					this.log.warning("incorrect or unsupported command: "
							+ commandArgument[0]);
					System.out.println("incorrect or unsupported command: "
							+ commandArgument[0]);
					continue;
				}
				this.log.info("Send command line to server: " + commandLine);
				this.commandSender.println(commandLine);
			}
		}
	}