public synchronized void start() throws Exception {
		if (thread != null) {
			throw new Exception("Heartbeat Responder already started.");
		}

		server = new ServerSocket(port, backlog);
		thread = new Thread(new Runnable() {
			/** run()
			 * 
			 * Accepts connections and adds it to the managed list
			 */
			@Override
			public void run() {
				running = true;
				while(running) {
					//Socket s = null;
					try {
						if (sock == null) {
							sock = server.accept();
						}
						if (ois == null) ois = new ObjectInputStream(sock.getInputStream());
						if (oos == null) oos = new ObjectOutputStream(sock.getOutputStream());
						String command = (String) ois.readObject();
						if (command.equals("Still alive?")) {
							oos.writeObject("Yes");
						}
					} catch (IOException e) {
						e.printStackTrace();
					} catch (ClassNotFoundException e) {
						e.printStackTrace();
					} catch (Exception e) {
						e.printStackTrace();
					}
				}
			}
		});
		thread.start();
	}