2017-06-16 16 views
1

Webアプリケーションを開発します。UDPプロトコルを使用してJavaにクライアントにパケットを送信します。Javaでインターネット経由でマルチキャストパケットを送信する

各クライアントに直接パケットを送信する必要があります。

Javaは、UDPを拡張するMulticastSocketというクラスを提供します。これにより、ネットワーク経由で複数のクライアントにパケットを送信することができます。

しかし、ローカルネットワークでは「インターネット」上では発生しません。

インターネット経由でマルチキャストパケットを送信する方法はありますか? 可能であれば、それを説明し、どのようにJavaで実装できるか説明してください。

IGMPのようなプロトコルがいくつか見つかりましたが、MulticastSocketで開発されたと思います。

+0

ファイアウォールの例外をクライアント側に追加する必要があります。おそらく、マルチキャストパケットを送信するためのマルチキャストルータが必要です。 – TBridges

+0

@Timしかし、私はインターネット上でマルチキャストパケットをどのように送ることができるのか分かりません。マルチキャストグループのIPはクラスDでなければならないので、私はこのIP clasaがインターネットからアクセスできないと思います! –

+0

www.iana.orgにあるあなたのソリューションを共有してもよろしいですか?ありがとう – ehe888

答えて

0

マルチキャストパケットを送信するときに、1つまたは複数のルータを通過することが予想される場合は、送信パケットのTTLを少なくとも通過すると予想されるルータの数と同じに設定する必要があります。これはMulticastSocketsetTimeToLive()メソッドで設定できます。

IGMPメッセージは、マルチキャストトラフィックを転送する場所をルータに知らせるために、マルチキャストレシーバによって送信されます。 joinGroupのいずれかの方法でマルチキャストグループに参加すると、OSが自動的にパケットを送信するため、パケットを明示的に送信する必要はありません。

しかし、パブリックインターネットを介してマルチキャストを送信する際の主な問題は、ほとんどのルーターがマルチキャストトラフィックを通過させるように構成されていないことです。デフォルトでは、転送する代わりにIGMPパケットをドロップします。

MBONEと呼ばれる実験的なインターネットマルチキャストバックボーンがありましたが、もう使用されているとは思われません。

だから、言語に関係なく公衆インターネット上でマルチキャストを送信することはできません。

+0

あなたの答えのためにちょっと仲間のありがとう。私はwww.iana.orgで解決策を見つけました。 –

関連する問題