как отправить int через UDP в java

Я пытаюсь написать небольшой код, который отправляет один int через UDP. Код, который у меня есть:

Отправитель:

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

Получатель:

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

Проблема в том, что получатель выводит на экран «50», что явно неверно. Я думаю, что проблема может заключаться в том, что я каким-то образом отправляю его как строку или что-то в этом роде, и это неправильно. Любая помощь?

6
задан user650309 8 March 2011 в 18:21
поделиться