public void runThreads() throws Exception {
		SenderRunnable sender = new SenderRunnable();
		ReceiverRunnable receiver = new ReceiverRunnable();
		Thread tSnd = new Thread(sender);
		Thread tRcv = new Thread(receiver);
		tSnd.start(); 
		tRcv.start(); 
		tSnd.join();

		for (int i = 0; i < n; i++) {
			try {
				Assert.assertEquals(m[i][c[i]?1:0], rcvd[i]);
			} catch (AssertionError e) {
				System.out.println("rcvd[" + i + "]: " + rcvd[i].toHexStr());
				System.out.println("m[" + i + "][c[" + i + "]]: " + m[i][c[i]?1:0].toHexStr());
				
				System.out.println("rcvd[" + i + "]: " + Arrays.toString(rcvd[i].bytes));
				System.out.println("m[" + i + "][c[" + i + "]]: " + Arrays.toString(m[i][c[i]?1:0].bytes));
				throw e;
			}
		}
	}