問題タブ [multicast]
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.
c# - ネットワークに依存しないインタープロセス pubsub
コンピュータにネットワーク カードがインストールされておらず、次のような機能が必要だとします。
プロセス 1 は、"Uri1" などの URI にメッセージを発行します。
プロセス 2 は、"Uri1" でメッセージをリッスンし、メッセージを "Uri2" に発行します。
プロセス 3 は、両方の URI からのメッセージをリッスンします。
すべてのプロセスは同じコンピューター上で実行されます。いくつかの調査の後、MSMQ が (キュー名を URI として使用する) 方法であると確信していますが、実装の問題は残っています。私はいくつかの可能性に出くわしました:
MSMQ を直接使用
する このアプローチの問題点は、作成、作成、削除などのキューを自分で管理する必要があることです...また、私が読んだことから、経験がないため、MSMQ の多くの落とし穴と制限に遭遇する可能性があります。それと
NServiceBus、MassTransitまたはRhinoServiceBusを使用する (すべて MSMQ を使用する) それらはすべて有能に見えますが、特に NServiceBus のように見えますが、それらのいずれかから基本的な pubsub 機能を抽出する方法をドキュメントから理解できないようです。上記と同様のインターフェース
WCF の使用(MSMQ 経由) 繰り返しますが、これは良いオプションのように見えますが、私は WCF の専門家とはかけ離れているため、詳しく調べる前に、これが正しい方法であることを確認したいと思います。
これまでの私たちのアプローチは、十分に機能する PGM マルチキャストに依存していましたが、ネットワーク カードなしで作業するという新しい要件により、少なくとも私が知る限り、オフライン作業には別のメカニズムを使用する必要があります。
ありがとう!
flash - Webページでマルチキャストビデオを再生するためのオプション
ビデオマルチキャストをサポートするネットワーク階層を想定すると、Webページからこのストリームを利用するために今日どのようなオプションがありますか?
残念ながら、SilverlightとプロジェクトStar Lightでこれについての言及をいくつか見ましたが、これは経験がありません。また、HTML5とFlashに続く3番目のオプションのように感じます。
これを処理できる今日の市場には何がありますか?
.net-3.5 - WindowsServer2008でマルチキャストを受信できません
Windows2003サーバーで正常に動作する次のコードがあります。
しかし、私のWindows 2008 R2サーバー(NATとして構成された単一のネットワークアダプターを使用してVMWare Workstation内で実行されている)では、アプリケーションはパケットを受信しません。
Wiresharkを実行すると、パケットがマシンに配信されていることを示しています(正しく見え、正しいマルチキャストIPとポートを持っています)が、アプリケーション層は何も受信しません(.Receiveで永久にブロックされます)
私は何かが足りないのですか?
linux - Linux マルチキャストでキューイング/バッファリングの遅延が発生する可能性のある場所はどこですか?
LAN 上の多くの Linux サーバー間でマルチキャスト メッセージングを多用しています。多くの遅延が発生しています。私たちは基本的に膨大な数の小さな荷物を送ります。スループットよりもレイテンシに関心があります。マシンはすべて最新のマルチコア (ハイパースレッディングを含めると少なくとも 4 つ、通常は 8 つ、16 つ) のマシンであり、負荷は常に 2.0 以下で、通常は 1.0 未満です。ネットワーク ハードウェアの容量も 50% 未満です。
私たちが目にする遅延は、キューイング遅延のように見えます。パケットは、ジャムしたように見えるまでレイテンシーが急速に増加し始め、その後、通常に戻ります。
メッセージング構造は基本的に次のとおりです。「送信スレッド」で、キューからメッセージを取得し、( を使用してgettimeofday()
) タイムスタンプを追加してから、 を呼び出しますsend()
。受信プログラムはメッセージを受信し、受信時刻にタイムスタンプを付けて、キューにプッシュします。別のスレッドでキューが処理され、送信タイムスタンプと受信タイムスタンプの違いが分析されます。(タイムスタンプは内部キューの外部に追加されるため、内部キューは問題の一部ではないことに注意してください。)
この問題に対する答えをどこから探し始めればよいのか、私たちは本当に知りません。私たちは Linux の内部構造に精通していません。私たちは、カーネルが送信側または受信側 (またはその両方) でパケットをキューイングまたはバッファリングしていると考えています。しかし、これを追跡して追跡する方法はわかりません。
価値のあるものとして、CentOS 4.x (RHEL カーネル 2.6.9) を使用しています。
c# - C# でマルチキャスト パケットの送信元 IP を特定するにはどうすればよいですか?
ユニキャスト経由で応答できるように、マルチキャスト パケットを送信したマシンの IP を特定する必要があります。
次のcsharp(.Net 3.5)コードを使用して、マルチキャスト接続を介してパケットを受信しています(コードは簡潔にするために編集され、エラーチェックと無関係なオプションが削除されています):
ソース IP を取得しようとしているコールバックは次のとおりです。
Wireshark でパケットをスニッフィングすると、そこに明確に表示されるため、正しい送信元 IP が IP ヘッダーにあることがわかります。ただし、送信側システムの IP (192.168.3.4) を出力する代わりに、上記のコードは、私が加入しているマルチキャスト グループの IP (225.2.2.6) を出力します。代わりにソース IP を取得する方法はありますか?
hibernate - Ehcache - 分散 RMI が機能しない
誰かが私を助けてくれることを願っています。A と B の 2 つのホストのクラスターをセットアップしました。ハートビートが両端で受信されていることがわかります。したがって、ネットワークとマルチキャストが機能していると確信しています。問題は、ホスト A のキャッシュに要素を入れることです。ホスト B のログで、リモート プットを受け取ることがわかります。しかし、ホスト B から同じ要素を要求すると、データベースに流れ込み、それでもクエリを実行します。これの原因は何ですか?ご指摘ありがとうございます。
java - Android 2.0.1 (現在 DROID 上) のマルチキャストは壊れていますか、それとも何か不足していますか?
このコードは、Ubuntu、Windows、および Mac OS X で完全に機能します。また、Android 2.1.1 を実行している Nexus One でも正常に機能します。
マルチキャスト データグラムの送受信を開始すると、すべてのコンピュータと Nexus One がお互いを完全に認識できるようになります。次に、ドロイド(ファームウェア 2.0.1) で同じコードを実行すると、誰もがドロイドから送信されたパケットを取得しますが、ドロイドは自分のパケットのみをリッスンします。
これは、run()
マルチキャスト グループに送信された着信パケットを常にリッスンしているスレッドの方法です。
ルーターでマルチキャスト サポートが有効になっているローカル ネットワークでテストを実行しています。私の目標は、パッケージをマルチキャスト グループにブロードキャストすることによって、デバイスがオンラインになったときにデバイスを相互に接続させることです。
これは、使用可能なすべての有効なネットワーク インターフェイス (ループバック インターフェイスではない) からマルチキャスト データグラムを送信するコードです。
更新 (2010 年 4 月 2 日) Droid のネットワーク インターフェイスがマルチキャストを使用して通信する方法を見つけました: WifiManager.MulticastLock。
じゃあ終わったら…
これを行った後、Droid はマルチキャスト グループで UDP データグラムの送受信を開始しました。
2010 年 7 月 6 日更新
リクエストごとに、これが私の現在のコードです。次のメソッドは、ブロードキャストとマルチキャストの両方のレシーバーに使用できる抽象クラスに存在します。
拡張クラスは実装onInit()
し、onDatagramReceived()
マルチキャストレシーバの場合、次onInit()
のようになります。
multithreading - TCPマルチキャストとマルチスレッド
他のクライアントに確実にマルチキャストできるクライアントを考え出す必要があります。これは、マルチキャストグループ内のクライアント間で確実に接続するためにTCPを使用することを意味します。それはn^2の接続数になりませんか?それは私には少しばかげているようです。信頼性のあるマルチキャストをより簡単に行う方法はありませんか?
編集:UNIX / C
編集:マルチスレッドがどのように機能するかを明確にしませんでした。しかし、n ^ 2の接続を開くとしたら、マルチスレッド化することになり、それは私が望むよりもさらに複雑になると思いました。
.net - 検出可能なネットワークリソース(.NET)の作成
.NETで検出可能なネットワークリソースを作成することは可能ですか?
私が達成したいのは、プライベートネットワーク上で実行されるアプリケーションの自動検出の手段です。アーキテクチャはクライアント/サーバーアプリケーションに似ていますが、サーバーはネットワーク上の任意のコンピューターにすることができます。クライアントはサーバーとなる特定のIPアドレスを認識しませんが。
何らかの形式のマルチキャストが必要になると思いますが、どこから始めればよいかさえわからないうちにマルチキャストを使用していませんでした。
クライアントが起動すると、「誰かいます」というメッセージがブロードキャストされると思います。次に、各サーバーは、将来の通信のためにIPの詳細で応答できます。
どうもありがとう、アディ
java - Java Media Framework が常に TTL=1 のマルチキャスト パケットを生成する
G711 マルチキャスト オーディオ ストリームを生成する必要があり、Java Media Framework の一部として AVTransmit2 サンプルを見つけました。
基本的にこれは機能しますが、マルチキャスト パケットはすべて TTL が 1 に設定されています。
SessionAddress が TTL 値を指定できることを示唆するドキュメントを見つけたので、それを変更してみました。つまり、 destAddr = new SessionAddress( ipAddr, port, 255);
また、Java が IPv6 にデフォルト設定されていることが問題の原因である可能性があるというコメントもいくつか見つけたので、次のように開始して強制的に ipv4 にしようとしました: java -Djava.net.preferIPv4Stack=true -classpath "." AVTransmit2 javasound://8000 239.1.10.65 20480
ただし、wireshark を見ると、パケットにはまだ TTL=1 があります
私はJMF2.1.1eを使用しています
これを解決する方法について何か提案はありますか?