首先,它在本地工作。只有当我将代码上传到Heroku时才会出现此问题。我可以在我的日志中看到服务器工作正常,它只是不通过UDP接收套接字数据。 创建套接字:
DatagramSocket socket;
try {
socket = new DatagramSocket(port);
} catch (Exception e) {
logger.error(e.toString());
}
收听数据包:
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());
}
我尝试通过运行netstat:nc -u garbil.herokuapp.com 40791
连接到服务器(通过mac),但它根本无法正常工作。
答案 0 :(得分:1)
嗯,我想这是一个防火墙问题:)
您需要检查您是否配置了“PORT”var: https://devcenter.heroku.com/articles/dynos#web-dynos
然后您还可能必须检查提供程序是否允许您使用UDP ...