Obtención de matrices de bytes mediante conexiones TCP

Estaba usandoUDP para enviar / recibir datos pero ahora quiero cambiar aTCP para evitar la pérdida de paquetes.

He leído varios tutoriales enTCP y notó que en lugar de usar DatagramPacket comoUDP, TCP utiliza InputStream / OutputStream.

¿Cómo obtenemos el byte [] de DataInputStream, algo que es similar a esto?

byte[] receiveData = new byte[64000];
DatagramPacket receivePacket = new DatagramPacket(receiveData,receiveData.length); 
receiveData=receivePacket.getData();

Respuestas a la pregunta(2)

Su respuesta a la pregunta