問題タブ [multicastsocket]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
0 に答える
390 参照

windows-8 - Windows 8 の IPv6 マルチキャスト トラフィックをキャプチャできない

以下は、マルチキャスト アドレス ff02::1 およびポート 9154 で着信する IPv6 マルチキャスト データをキャプチャするために作成した関数です。
このコードは、Windows Vista および Windows 7 で正常に動作します。winsock関数は Win8 ではエラーを返します)。

アプリケーションがこのポートを使用netstatしていることを確認できます。
誰でも助けることができますか?

0 投票する
1 に答える
2729 参照

java - Java でメッセージをマルチキャストする際のエラー

接続されたクライアント間でメッセージをマルチキャストする必要がありますが、問題に直面しています。このリンクに対して次のスニペットを試しました。

例外が発生しています:

私は試した:

  • ローカルホスト
  • 127.0.0.1
  • 192.168.1.29 (私のローカル IP)

何がうまくいかなかったのでしょう。このトピックは初めてなので、デバッグできません。助けてくれてありがとう。

0 投票する
4 に答える
32302 参照

java - Ehcacheマルチキャストを使用して「要求されたアドレスを割り当てることができません」java.net.SocketExceptionを取得する

マルチキャストjava.net.SocketExceptionプロバイダーを開始しようとすると、次のようになります。

0 投票する
1 に答える
478 参照

sockets - TCL スクリプトがマルチキャスト ソケットを構成できない

ubuntu 12.04 で tcl スクリプトを使用していますが、マルチキャスト ソケットを構成しようとすると問題が発生します。私がやろうとしているのは、あるソケットからマルチキャスト ソケットにトラフィックを転送することですが、マルチキャスト ソケットは明らかにうまく作成されていますが、その理由はわかりません。必要なマルチキャスト グループにバインドされていません。

これは私が使用しているスクリプトです

ただし、スクリプトを実行してシステムのポートをチェックアウトすると、ご覧のとおり、マルチキャスト ポートに適切なマルチキャスト IP が割り当てられません。

誰か理由を教えてくれませんか?

前もって感謝します、

よろしく!

0 投票する
1 に答える
482 参照

ubuntu-12.04 - Ubuntu 12.04 で openpgm を使用する

Openpgm ライブラリの使用中に問題が発生しました。この問題について誰か助けていただければ幸いです。

Ubuntu 12.04 で Openpgm を使用したいと考えています。このリンクによると: " https://code.google.com/p/openpgm/wiki/OpenPgm5CReferenceBuildLibrary " Openpgm は Ubuntu 8.04 から 10.10 でテストされました。

Openpgm(5.2.122)の最新バージョンをダウンロードし、エラーなしで「scons」でコンパイルしました。リンクによると、パス「*./ref/debug/examples/」に「pgmrecv」と「pgmsend」という名前のコンパイル済みの例が表示されるはずですが、そのような例はありません。代わりに「purinrecv」と「purinsend」がありました。最初にレシーバーを次のように実行します: "./purinrecv -lp 3065" 次に、センダーを次のように実行します: "./purinsend -lp 3065 Please work" 、両方にエラー メッセージはありませんでしたが、レシーバーは何も受信しませんでした。どんな助けでも大歓迎です!

0 投票する
2 に答える
7169 参照

java - MulticastSocket コンストラクターとポートまたは SocketAddress へのバインド

ここでバインディングという用語について根本的な誤解があるかもしれませんが、 MulticastSocketとそのコンストラクターの使用法について混乱しています。彼らは私がすべきだと理解していることをていないので、私の誤解を解くのを手伝ってくれる人なら誰でも感謝します.

まず、私が達成しようとしていること。MulticastSocket を作成して特定のネットワーク アダプタにバインド (つまりリッスン) し、特定のマルチキャスト グループに参加する短いプログラムを作成しようとしました。私は正常に動作する次の(クライアント)コードを試しました。マルチキャストソケットがタイムアウトすることなく、パケットをそれにマルチキャストできます。

}

残念ながら、MulticastSocket コンストラクターを変更するとすぐに機能しなくMulticastSocket(SocketAddress bindaddr)なります。この段階でネットワークアダプターを指定していないため、このコンストラクターが呼び出されたときに正確にバインドするのは何ですか。(後で特定の NetworkInterface を持つグループに参加することはわかっていますが、コンストラクターの呼び出し中にどのアダプターにもバインドされていないことをどのように確認できますか?)

アダプターを指定せずにグループに参加することもできますが、それがどのアダプターにバインドされているかわかりません。

ポートへのバインディングが実際に行うことだけを説明できる人はいますか?特定の NetworkInterface でのみリッスンすることは可能ですか?

更新 #1 **

これまでの返信を読み、これについて同僚と話し合った結果、Java MulticastSocket に関する私の理解は次のとおりです。

  1. MulticastSocket() は、ランダムに選択されたポートにバインドされたマルチキャスト ソケットを作成します (ワイルドカード アドレス 0.0.0.0、つまりすべてのネットワーク カードにバインドされたホストの基になる OS によって)。ただし、このコンストラクタをnullで呼び出すと、バインドされていない MulticastSocket が作成されます。このシナリオでは、`bind を呼び出します(SocketAddress) メソッドは IP とポートにバインドします。
  2. MulticastSocket(int port) は、特定のポートにバインドされたマルチキャスト ソケットをすべての IP アドレス上に作成します。
  3. MulticastSocket(SocketAddress sa) は、指定された IP アドレス (無効なマルチキャスト アドレスであっても、任意の IP アドレスである可能性があります) およびポートにバインドされたマルチキャスト ソケットを作成します。

オプション 2 を使用すると、実際の宛先に関係なく、指定されたポートに送信されたすべてのパケットが MulticastSocket に渡される可能性があることを意味します。グループに参加している場合にのみマルチキャストパケットが到着する可能性があるためです(ただし、ポート番号が一致する場合、マルチキャスト以外のアドレス宛ての他のパケットは到着しますか?)

オプション 3 を使用すると、IP アドレスにバインドでき、宛先が一致するパケットのみがソケットに到着します。このオプションを使用して、特定のネットワーク インターフェイスの IP にバインドすることは完全に可能ですが、ネットワーク カードの特定の IP アドレス宛てではないため、マルチキャスト パケットは受信されません (これが、マルチキャスト パケットがネットワーク カードに到着するのを見たことがない理由です)。コード例)。有効なマルチキャスト アドレスにバインドすることもできますが、このシナリオでは、 への呼び出しに関係なく、宛先がバインドされたマルチキャスト アドレスと一致する特定のパケットのみがソケットに到着します。joinGroup()

joinGroup()ソケット自体には何もせ、基盤となるネットワーク システムに IGMP リクエストを発行して、ルーターや OS 自体が実際に指定されたマルチキャスト パケットのルーティングを開始し、ハードウェアを経由してネットワーク スタックを経由し、最後に Java MulticastSocket に到達するようにするための呼び出し自体。

** Update 2 ** 「UNIX ネットワーク プログラミング」、Stevens、Fenner、Rudoff からの引用:

マルチキャスト データグラムを受信するには、プロセスがマルチキャスト グループに参加する必要があり、グループに送信されるデータグラムの宛先ポート番号として使用される prot 番号に UDP ソケットをバインドする必要もあります。2 つの操作は別個のものであり、両方が必要です。グループに参加すると、ホストの IP 層とデータリンク層が、そのグループに送信されたマルチキャスト データグラムを受信するように指示されます。ポートのバインドは、アプリケーションがそのポートに送信されたデータグラムを受信することを UDP に指定する方法です。一部のアプリケーションは、ポートに加えて、マルチキャスト アドレスもソケットにバインドします。これにより、そのポートで他のユニキャスト、ブロードキャスト、またはマルチキャスト アドレスに受信される可能性のある他のデータグラムがソケットに配信されなくなります。

それがすべてを説明していると思います。

** Update 3 ** テストしたコードを投稿したかっただけで、コメントはそれぞれで何が起こるかを説明しています。

0 投票する
0 に答える
255 参照

c# - 2 つのネットワーク カードで UDP マルチキャスト用のソケットをセットアップする方法は?

2つのネットワークカードが存在するUDPマルチキャスト用のソケットをセットアップする方法のようなこの問題? , でもこれは C++ 用です. でも私は mono です. だから C# でこれを行う方法を知りたいです.

私は次のコードを使用します:

しかし、Linux にはマルチキャスト アドレスがありません。

誰でも私を助けることができますか?