Java的DatagramSocket没有收到数据包(仅限生产中)

时间:2016-05-06 16:34:21

标签: java udp

首先,它在本地工作。只有当我将代码上传到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),但它根本无法正常工作。

可以在http://garbil.herokuapp.com/logs

中查看服务器日志

1 个答案:

答案 0 :(得分:1)

嗯,我想这是一个防火墙问题:)

您需要检查您是否配置了“PORT”var: https://devcenter.heroku.com/articles/dynos#web-dynos

然后您还可能必须检查提供程序是否允许您使用UDP ...