2017-06-23 212 views
0

ソケットをマルチキャストIPアドレスにバインドしようとすると、C#.NETフレームワークSocketクラスに問題があります。 Bind()メソッドのMicrosoftのドキュメント(以下のリンクを参照)では、「マルチキャストデータグラムを受信する場合は、Bindメソッドをマルチキャストポート番号で呼び出す必要があります」と警告しています。マルチキャストポート番号とは何ですか?

ポート番号がマルチキャスト/ユニキャスト/ブロードキャスト固有であるとは思われません。これでMicrosoftが何を意味するのか知っていますか?

https://msdn.microsoft.com/en-us/library/system.net.sockets.socket.bind(v=vs.110).aspx

答えて

1

マルチキャストアドレスは、特定のI.P.を含みますアドレスとポート番号を入力します。そしてこれは私たちが伝統的にi.p.ユニキャストプロトコルの一部であるマシン(クライアントまたはサーバーのいずれか)のアドレス。

マルチキャストアドレス、IPV4用語で、

を239.n.n.nする224.n.n.nである基本的にアドレスの最初の4ビットは、定義された目的のためにその中の特定のサブ範囲があり1110

あります。

基本的には、他のアプリが使用していないアドレスとポートを選択します。基本的には「私のネットワークにとどまる」(ネットワーク技術者はおそらくその説明に合っているだろうが)、「管理スコープ」のために予約されているので、239.n.n.nの範囲のアドレスを使用したいと思うかもしれない。

ここで接続しているクライアントとサーバーを示しており、例です: http://www.jarloo.com/c-udp-multicasting-tutorial/

(コードのフォーマットは、サーバの終了およびクライアントのスタートだいくつかのもので、一緒に合併している途中で失敗しますテキストでなければならないが、あなたはそれを働かせるだろう)。

どちらも同じi.p.アドレス、および同じポート。

このページでは、私はビットが1110であるための最初の、およびIPv6マルチキャストの議論へのリンクで何を意味するかの実例がありますhttp://www.tcpipguide.com/free/t_IPMulticastAddressing.htm (ともほとんどのインターネットトラフィックが何であるかであるユニキャストについての情報のかなり多く、 )。

もちろん、ウィキペディアにもちょっとした議論があります。
https://en.wikipedia.org/wiki/Multicast_address

+0

私はマルチキャストアドレスが何であるかを理解していますが、Microsoftは「マルチキャストポート番号」とは何を意味していますか?彼らは、マルチキャストアドレスにはいくつかのポート番号しか使えないことを暗示しているようです。 – Ryan

+0

@ Ryanでは、ポート番号はレイヤ4プロトコルのアドレスであり、実際にはマルチキャスト(IP、レイヤ3)アドレスとは関係ありません。マルチキャストに使用するレイヤ4プロトコルがUDP(共通)の場合、UDPにはポート番号が必要です。 UDPは、ユニキャスト、ブロードキャスト、またはマルチキャストを使用しているかどうかはわかりません。 –

+0

それは私が思ったものです。しかし、Microsoftは「マルチキャストポート番号」の意味は何ですか? – Ryan

関連する問題