7

マルチキャストを使用して小さな定期的なメッセージをネットワーク内の他のプロセスに送信するネットワーク アプリケーションを実装するには、.Net フレームワークでの API の使用に関してどのような選択肢がありますか? 私の明らかな現在の選択である System.net.sockets API とは別に、WCF はより単純なアプローチを提供しますか? それとも、WCF は純粋にポイント ツー ポイントの SOA ベースの IPC メカニズムなのでしょうか?

: 私は、マルチキャスト プログラミングの実装の詳細に精通しています。私が興味を持っているのは、.Net フレームワークが提供するその他の選択肢です。

4

4 に答える 4

2

を作成し、マルチキャスト アドレス ( 、つまり からまでの任意のアドレス)UDPClientにデータを送信するだけです。224/4224.0.0.0239.255.255.255

クライアントは、通常どおりこのアドレスをリッスンするだけです。

詳細については、こちらの回答を参照してください。

PSWCFこのような単純なタスクにはかなりやり過ぎですが、 で完全に可能WCFです。そこには違いMessage Exchange Patternsがあります。つまり、コミュニケーションの流れ方です。

IOutputChannel送信者とリスナーに必要なのはIInputChannel、データグラム指向のパターンです。

于 2009-02-05T11:54:11.023 に答える
2

WCF で実装されたコールバック チャネル (つまり、pub/sub タイプのシステム) を使用することを提案するつもりでしたが、それにはクライアントを「サーバー」に登録する必要があります。

次に、Tibco EMS (JMS 実装) のようなエンタープライズ クラスのメッセージング ソリューションについて言及するつもりでした。

次に、Googleにアクセスして、このリンクを見つけました:WCF Multicasting。そこには、WCF を最初に見たときにまだ出会っていないアイデアがたくさんあります。

于 2009-02-05T12:14:06.927 に答える
0

FWIW、あなたの最初の質問は、WCFがあなたの目標を達成できるかどうかを具体的に尋ねました。Quassnoiが前に示したように、WCFを使用してこれを確実に行うことができます。WCFに関するほとんどの文献は、そのコントラクトモデルの使用方法に焦点を当てていますが、チャネルモデルとバインディング構造を使用することは可能であり、もっともらしいことです。

IOutputChannelとIInputChannelを実装すると、独自のデータグラムベースのチャネルを作成できます。これはフレームワークの一部として提供されていますか(そしてこれもあなたの質問の核心だと思います)。ただし、MicrosoftはUDPトランスポートのサンプルを提供しました(マルチキャストをサポートしていると彼らは主張しています)。次のURLでサンプルを見つけることができます。

http://msdn.microsoft.com/en-us/library/ms751494.aspx

于 2010-01-05T15:07:02.900 に答える
0

WCFは、やりたいことに対して本当に重いです。

あなたの最善の策は、ソケットAPIでデータグラムを使用することです。API を理解すればそれほど怖くはありませんが、利用可能な中で最も使いやすいものではないことは確かです。

マルチキャストは、ISP / ネットワーク管理者がマルチキャスト データを許可している場合に、送信先のアドレスを介して実現されます。WCFは本質的に複数のターゲットを許可していません。プロキシを作成するときは、IP(マルチキャストアドレスの可能性があります)を指す必要があります。

于 2009-02-05T11:57:27.290 に答える