@Override
	public void run() {
		try {
			this.socket.setSoTimeout(250);
		} catch (SocketException se) {
			logger.warn(se.getMessage());
			this.stop();
		}

		while (!this.stop) {
			try {
				this.accept();
			} catch (SocketTimeoutException ste) {
				// Ignore and go back to sleep
			} catch (IOException ioe) {
				logger.warn(ioe.getMessage());
				this.stop();
			}

			try {
				Thread.sleep(750);
			} catch (InterruptedException ie) {
				// Ignore
			}
		}

		try {
			this.socket.close();
		} catch (IOException ioe) {
			// Ignore
		}
	}