private void sendOutput() {
		// try{
		// 	Thread.sleep(WAIT_TIME);
		// } catch (InterruptedException e) {
		// 	// duh
		// }
		if(isClosed()) return;
		byte[] output;
		synchronized(kh) { 
			synchronized(net) {
				byte[] message;
				/**
				 *  Make sure that there are enough connections. This prevents stations
				 *  from broadcasting messages once the number of connections drops below
				 *  the minimum. If too little connections are available then the station
				 *  will only send empty messages
				 */
				// System.out.println(alias + ": Are we allowed to send? " + (kh.approved(net.getStations())? " Yes":"No"));
				if(kh.approved(net.getStations()) && nextScheduledRound == nextRound) {
					Debugger.println("messages", "[DcClient " + alias + "] Sending in round " + nextRound + "...");
					message = mb.getMessage();
					// remember that we used up this scheduled round.
					assert lastScheduledRound == -1;
					lastScheduledRound = nextScheduledRound;
					// flag that we used up this round
					nextScheduledRound = -1;
				} else {
					message = new byte[DCPackage.PAYLOAD_SIZE - scheduler.getScheduleSize()];
				}
				Debugger.println(2, "[DcClient "+alias+"] Sending message " + Arrays.toString(message));
				output = kh.getOutput(scheduler.getSchedule(), message, net.getStations());
				Debugger.println(2, "[DcClient "+alias+"] Sending output " + Arrays.toString(output));
				
			} 
		}
		DCPackage pckg = new DCPackage(nextRound, output);
		broadcast(pckg);
	}