protected static void stopChatServer(Thread chatServerThread) {
		while (chatServerThread.isAlive()) {
			chatServerThread.interrupt();
			log.info("INTERRUPT chat Server Thread");
			try {
				// this dummyClient is needed when chatServerThread
				// is blocked in serverSocket.accept();
				Socket dummyClient = new Socket (help.Default.SERVER_INFO.getIpAddress(),help.Default.SERVER_INFO.getPort());
				log.info("CREATE dummy socket");
				dummyClient.close();
				log.info("CLOSE dummy socket");
			} catch (UnknownHostException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
				log.info("Receive UnknownHostException");
			} catch (IOException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
				log.info("Receive IOException");
			}
			try {
				log.info("JOIN chat Server Thread");
				chatServerThread.join();
			} catch (InterruptedException e) {
				e.printStackTrace();
				log.info("Server Main thread is interrupted when stoping serever chat thread");
			}
		}
		log.info("Server Main thread stop chat server thread");		
	}