Datagrampacket leer nach receive?

  • Ich habe folgenden Code beim senden:


    Code
    1. DatagramSocket udp = new DatagramSocket();
    2. String message = "!alive " + tcpPort + " " + new String(nodeOperators);
    3. byte[] buf = message.getBytes("UTF-8");
    4. DatagramPacket packet;
    5. packet = new DatagramPacket(buf, buf.length);
    6. packet.setAddress(InetAddress.getByName(controllerHost));
    7. packet.setPort(controllerUdpPort);
    8. udp.send(packet);


    Beim Empfangen habe ich diesen Code:


    Code
    1. DatagramSocket udpsocket = new DatagramSocket(port);
    2. byte[] data = new byte[52];
    3. DatagramPacket packet = new DatagramPacket(data, 0);
    4. udpsocket.receive(packet);
    5. String message = new String(data);


    Grundsätzlich bleibt der Empfänger bei receive NICHT hängen, allerdings besteht der Buffer danach aus lauter leeren Bytes (= 0). Das Byte-Array das gesendet wird ist NICHT leer. Kann mir jemand helfen?

    Nikolaus Trixner

    Edited once, last by NTrixner ().

  • Hat sich schon erledigt!


    Beim empfangen hätte ich nicht

    Code
    1. [COLOR=#333333]DatagramPacket packet = new DatagramPacket(data, 0);


    schreiben sollen, sondern
    [/COLOR]

    Code
    1. [COLOR=#333333]DatagramPacket packet = new DatagramPacket(data, data.length);


    [/COLOR]