2016-05-06 3 views
2

まず、ローカルで動作します。この問題は、私がHerokuに自分のコードをアップロードしたときにのみ発生します。私のログでは、サーバがうまく動作していることがわかります。単にUDPを介してソケットデータを受信して​​いないだけです。 は、ソケットの作成:JavaのDatagramSocketはパケットを受信しません(本番環境のみ)

パケットを受信
DatagramSocket socket; 
try { 
    socket = new DatagramSocket(port); 
} catch (Exception e) { 
    logger.error(e.toString()); 
} 

nc -u garbil.herokuapp.com 40791が、それは単に動作しません:

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コマンドを実行して(MACを通じて)サーバに接続しようとしました。

サーバーログはhttp://garbil.herokuapp.com/logsで表示できます。

+0

udp /マルチキャストを無効にする多くのホスティング環境(私はAWSが知っている)。なぜtcpの代わりにudpを使用していますか? – jtahlborn

答えて

1

さて私は、これはファイアウォールの問題だと思います:)

あなたはあなたがよく「PORT」VAR構成されていることを確認する必要があります。 https://devcenter.heroku.com/articles/dynos#web-dynos

その後、あなたはまた、プロバイダがあなたを許すことを確認する必要があるかもしれませんがUDPを使用する...

関連する問題