Zunächst einmal funktioniert es lokal. Das Problem tritt nur auf, wenn ich meinen Code auf Heroku hochlade. Ich kann in meinen Protokollen sehen, dass der Server einwandfrei funktioniert und Socket-Daten nicht über UDP empfangen werden. Erstellen der Sockel:Javas DatagramSocket empfängt keine Pakete (nur in der Produktion)
DatagramSocket socket;
try {
socket = new DatagramSocket(port);
} catch (Exception e) {
logger.error(e.toString());
}
für Pakete Zuhören:
try {
byte[] data = new byte[256];
DatagramPacket receivePacket = new DatagramPacket(data, data.length);
socket.receive(receivePacket);
logger.log("Got packet!"); // This is never reached
} catch (IOException e) {
logger.log(e.toString());
}
ich an den Server versucht, Verbinden (durch mac) von netstat laufen: nc -u garbil.herokuapp.com 40791
, aber es funktioniert einfach nicht.
Die Serverprotokolle können in http://garbil.herokuapp.com/logs angezeigt werden.
viele Hosting-Umgebungen deaktivieren UDP/Multicast (ich weiß, AWS tut). Warum benutzt du udp anstelle von tcp? – jtahlborn