@Override
	public void run() {
		Socket connection = null;
		int port = Integer.parseInt(this.clientConfig.get("SERVER_PORT")
				.toString());
		LOG.log(Level.INFO, "Connecting to " + this.serverIp.toString() + ":"
				+ port);
		try {
			connection = new Socket(this.serverIp, port);

			Request rq = RandomComputationUtil.getRandomRequest();
			Message.send(rq, connection);
			Reply result = (Reply) Message.receive(connection);

			if (result.getResult() != null) {
				System.out.println(this.getName() + " received> "
						+ rq.toString() + " = " + result.getResult());
			} else {
				System.out.println(this.getName() + " received> "
						+ "Authentication fail, " + "user: " + rq.getAuthName()
						+ " could not be resolved");
			}
		} catch (UnknownHostException e) {
			LOG.log(Level.SEVERE, "Unkown Host. Client shutting down", e);
			System.exit(1);
		} catch (IOException e) {
			LOG.log(Level.SEVERE, "IOException. Client shutting down", e);
			System.exit(1);
		} finally {
			try {
				// connection.getOutputStream().close();
				// connection.getInputStream().close();
				connection.close();
			} catch (IOException e) {
				LOG.log(Level.SEVERE, "IOException. Client shutting down", e);
				System.exit(1);
			}
		}
	}