private int getNextClientId() {
		logger.finest("Getting next client id...");
		synchronized(CONNECTION_LOCK) {
			if(clients.size() > Packet.MAXIMUM_CONNECTION_ID - Packet.MINIMUM_CONNECTION_ID) {
				logger.finer("Assigning anonymous connection id of " + Packet.ANONYMOUS_CONNECTION_ID + " to client because server has maximum of " + (Packet.MAXIMUM_CONNECTION_ID - Packet.MINIMUM_CONNECTION_ID) + " connections");
				return Packet.ANONYMOUS_CONNECTION_ID;
			}
			do {
				lastConnectedClientId = Packet.nextConnectionId(lastConnectedClientId);
			} while(clients.containsKey(lastConnectedClientId));
			logger.finest("Next client id is " + lastConnectedClientId);
			return lastConnectedClientId;
		}
	}