Estoy tratando de escribir un poco de código que envía una sola int sobre UDP. El código que tengo hasta ahora:cómo enviar un int a través de UDP en Java
remitente:
int num = 2;
DatagramSocket socket = new DatagramSocket();
ByteArrayOutputStream bout = new ByteArrayOutputStream();
PrintStream pout = new PrintStream(bout);
pout.print(num);
byte[] barray = bout.toByteArray();
DatagramPacket packet = new DatagramPacket(barray, barray.length);
InetAddress remote_addr = InetAddress.getByName("localhost");
packet.setAddress(remote_addr);
packet.setPort(1989);
socket.send(packet);
receptor:
DatagramSocket socket = new DatagramSocket(1989);
DatagramPacket packet = new DatagramPacket(new byte[256] , 256);
socket.receive(packet);
ByteArrayInputStream bin = new ByteArrayInputStream(packet.getData());
for (int i=0; i< packet.getLength(); i++)
{
int data = bin.read();
if(data == -1)
break;
else
System.out.print((int) data);
El problema es que el receptor está imprimiendo '50' a la pantalla que, evidentemente, no está bien. Creo que el problema puede ser que de alguna manera estoy enviándolo como una cadena o algo así y no lo estoy leyendo bien. ¿Alguna ayuda?