Originariamente inviato da menostress
codice:
int channel = payload[0];
byte[] addr = new byte[4];
		
for(int j=1; j<5; j++)
	addr[j-1]=payload[j];
		
InetAddress dest_IP = InetAddress.getByAddress(addr);
int dest_port = payload[2];
			
byte[] sendData = new byte[payload.length-6];
for(int j=5; j<payload.length; j++)
	sendData[j-5]=payload[j];
Mi dispiace, ma non credo proprio che vada bene!!
channel e dest_port li prendi da 1 solo byte???

Meglio se usi DataInputStream/ByteArrayInputStream, cioè l'opposto del metodo che ho indicato io. Tieni presente che DataOutputStream scrive i dati in un formato ben preciso (e che devi conoscere se vuoi riprendere i dati senza usare DataInputStream). Ad esempio i valori interi li scrive in formato big-endian.