public void sendNextNum() {
		int destAddr;
		int next;
		boolean doAgain;
		
		do {
			// choose a destination that we have not sent 100 messages to yet
			doAgain = false;
			destAddr = randNumGen.nextInt(RIOTester.NUM_NODES);
			next = nextNum.get(destAddr);
			if (next == -1) {
				doAgain = true;
			}
			if (next == NUM_DELIVERIES + 1) {
				// We just sent everything to this destination
				nextNum.put(destAddr, -1);
				if (++numFinished == RIOTester.NUM_NODES) {
					// If we are finished with everything then stop and don't
					// schedule another timeout
					return;
				}
				doAgain = true;
			}
		} while(doAgain);
		

		// Send the message
		RIOSend(destAddr, Protocol.RIOTEST_PKT,
				Utility.stringToByteArray("" + next));
		nextNum.put(destAddr, next + 1);

		// Schedule another send for the next time step
		try {
			Callback cb = new Callback(Callback.getMethod("sendNextNum", this,
					new String[0]), this, new Object[0]);
			addTimeout(cb, 1);
		} catch (NoSuchMethodException e) {
			e.printStackTrace();
		} catch (ClassNotFoundException e) {
			e.printStackTrace();
		}
	}