2012-03-12 9 views
0

キープアライブオプションで送信するdatagramsocketとdatagrampacketを作成しようとしています。私はこれを設定する方法について混乱しています。 datagramsocket.setKeepAlive(true);のような簡単な方法はありますか?Java DatagramSocket設定キープアライブオプション

編集:申し訳ありませんが、私はパケットの生存時間を設定することを意味しました。私がそれを受け取ることができない場合、それを設定できる方法はありますか?

+0

キープアライブのオプションはありますか? NATルータなどで接続をアクティブにするには、独自のUDPパケットを送信する必要があります。 –

+0

私はあなたが達成しようとしていることを正確に書き留める必要があると思います。 –

+0

キープアライブはTCP(TCPパケット)の属性です。 TTLはUDP(UDPデータグラムとUDPマルチキャスト "パケット")の属性です。不思議なことに、JavaはUDPマルチキャストのTTLのみを公開します... –

答えて

2

UDPはコネクションレスプロトコルと呼ばれ、接続が確立されていないため、IPアドレス/ポートタプルにパケットを送信するだけです。接続がないので、生き続けるものはありません。

+0

いいえ、ソケットではなくデータグラムパケットを意味します。 – DankMemes

+0

あなたはおそらく生きる時間を意味しますか? –

+1

MKに似ています。 OPは、UDPマルチキャスト[MulticastSocket.setTimeToLive()メソッド](http://docs.oracle.com/javase/1.4.2/docs/api/java/)でJavaによってのみ提供されるUDPのTTLを探す必要がありますnet/MulticastSocket.html#setTimeToLive%28int%29)、DatagramSocketでは使用できません。理由はわかります... –

関連する問題