2012-02-26 12 views
2

私は、TCP/IP経由で単一ネットワーク内で複数の輪を持つロボット(.NET Compact Frameworkを実行する)を制御するプロジェクトに取り組んでいます。TCP/IPで複数ボットを制御する

制御はネットワークの外部から行うことができます。

最初はソケットを選択していましたが、後でWCFを使用する方が良いと思われました。

ネットワークアーキテクチャには、WCFサービスをホストする1つのサーバーと、ネットワーク内のすべてのデバイスの制御キューが含まれます。クライアントアプリケーションは、ネットワークの内/外からサーバーに接続し、適切なデバイスを見つけて制御を開始します。

デバイスが初期化されると、クライアントアプリケーションがコマンドを適切なキューに送信している間、デバイスはそのコマンドキューの新しいコマンドをチェックするためにWCFサービスをポーリングし続けます。

私は知りたかったのですが、最小限の待ち時間でこの解決策がどれほど良いのでしょうか?ポーリングを削除して、新しいコマンドが入っているデバイスに割り込みを送信する方法はありますか?

遅延を減らすためにどのような改善ができますか?

+0

私はCFが分かりませんが、WCFサーバー(今のようなクライアントではありません)を実行できるのであれば、必要なだけのものにする必要があります。 – svick

+0

CFはサービスを実行できません。クライアントのみです。それが問題でした。 –

答えて

1

WCFは全二重通信をサポートしていますので、ユーザーがボタンを押したときにサーバーがクライアントにコマンドを送信するようにしてください(またはコントロールが何であれ) 。

はそこにWCFの良いチュートリアルがたくさんあります...これは、私が数年前に書いた記事がある - それは非常にシンプルだし、良いスタートが考えられます。Client Server Programming with WCF

EDIT:その記事がやって比較行きます物事は "ソケット"のやり方、そしてWCFの使い方は簡単です。また、レイテンシの質問への答えに言及するのを忘れました。記事で使用されている "net.tcp"バインディングを使用すると、完全に高速に実行されます。

+0

感謝ティモシー、私はnet.tcpでもっと掘り下げてみよう –

関連する問題