UDP Broadcast in Java

Morgen

Ich bin ziemlich neu in Java- und Socket-Verbindungen, aber ich versuche, ein UDP-Paket / Broadcast über 255.255.255.255 auf Port 8001 an ein Gerät zu senden. Ich kann die Daten senden, aber wenn es Zeit ist, die Daten zu empfangen, läuft die Verbindung ab. Ich habe einen Paket-Sniffer und kann sehen, wie das Paket gesendet wird und das Gerät antwortet.

Ich bin mir ziemlich sicher, dass es ein Anfängerfehler ist, den ich in meinem Code vermisse, aber ich habe eine Weile daran festgehalten und jede Hilfe wäre dankbar.

 m_Socket = new DatagramSocket(m_SERVERPORT);
 InetAddress address = InetAddress.getByName(m_SERVERIP);


 m_DataPack = new DatagramPacket(m_SERVERCMD.getBytes(), m_SERVERCMD.getBytes().length,
 address, m_SERVERPORT);
 m_Socket.setBroadcast(true);
 m_Socket.connect(address, m_SERVERPORT);

 m_Socket.send(m_DataPack);
 m_DataPack = new DatagramPacket(data, data.length,
 address, m_SERVERPORT);


 m_Socket.receive(m_DataPack); // This is where it times out


 data = m_DataPack.getData();
 String received = data.toString();
 System.out.println("Received: " + received);
 m_Socket.close();

anke und Gig'E

BEARBEITEN

Ich bin mir nicht sicher, ob dies hilft, aber wenn ich mir das m_Socket-Objekt ansehe, kann ich direkt vor dem Senden Folgendes sehen:

bound = true;
close = false;
connectedAddress = Inet4Address (id = 32) (-1,-1,-1,-1);
connectedPort = 8001;
connectState = 1;
created = true;
impl = PlainDatagramSocketImpl;
oldImpl = false;

und das m_DataPack-Objekt ist das folgende:

address = Inet4Address (id = 32) (-1,-1,-1,-1);
bufLength = 6 (size of packet I'm sending is 6 char long);
offset = 0;
port = 8001;