comment envoyer un int par UDP en java

Je suis en train d'écrire un peu de code qui envoie un int sur UDP. Le code que j'ai pour l'instant:

Expéditeur:

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 );

Récepteur:

        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);

Le problème est que le récepteur est en cours d'impression '50' à l'écran qui n'est évidemment pas la droite. Je pense que le problème peut être que je suis en quelque sorte de l'envoyer comme une chaîne ou quelque chose et ce n'est pas la lecture de ce droit. Toute aide?

InformationsquelleAutor user650309 | 2011-03-08