public synchronized void startEntropySession() {
		if(freeForEntropy) {

//			System.out.println("---------------------------------------");
//			System.out.println(Arrays.toString(lastContacts.toArray()));
//			System.out.println("---------------------------------------");
			
			if(lastContacts.size() == num_connected_servers) {
				lastContacts.clear();
			}

			for(Integer i: socks.keySet()) {
				if(i <= this.max_otherID && !lastContacts.contains(i)){
					lastContacts.add(i);
					break;
				}	
			}

			if(lastContacts.size() > 0) {
				Socket socket = socks.get(lastContacts.get(lastContacts.size() - 1));
				//				System.out.println(this + ": " + port + " " + socket.getPort());
				if(socket != null) {
					PrintWriter dout = (PrintWriter)ostreams.get(socket);

					String msg = Constants.begin_entropySession_msg + " " + this.sID;
					dout.println(msg);
				}
				else {
					System.out.println("No contact found for new Entropy session --> startEntropySession");
				}
			}
			else {
				System.out.println("---------------> No other replica is connected!");
			}
		}
	}