2011-01-03 4 views
1

レクリエーション目的でアプリケーションをコーディングしたいと思います。これは、同じLAN上の他のコンピュータ上で実行されていることを検出し、それらと通信するデスクトップアプリケーションである必要があります。コミュニケーションによって、私は何かを上から下へと渡すことができるはずです。LAN上のアプリケーションとの通信

私はコードを要求していませんが(私の目的を上回るでしょうが)、私はいくつかの小さなスニペットが傷つくことはないと思います。いずれにしても、私が本当に望むのは、「推奨される手順」です。つまり、Microsoftがこの環境とドキュメントに推奨するものを意味します。

答えて

3

これが初めてのネットワークアプリケーションの場合は、まずソケットから始めて、このように最初からアプリケーションを構築する際の問題を理解していただければ幸いです。効果的に、あなたが構築しようとしているものはピアツーピアアプリケーションです。

  1. ピア発見 - ネットワーク上の他のインスタンスを検出し、それらがメッセージングまだオンラインしているかいない
  2. 場合考え出す - :あなたが考えると、ここで研究したいと思う多くのもののような、あります。セキュリティ
  3. アプリのワイヤプロトコルに設計する - 最終的には暗号のようなもの、リプレイを防止 攻撃など

は(あなたが基礎となる概念を理解したら)、あなたはすべて延期したいと思うでしょうこれを開発よりもむしろフレームワークに最初からすべてを。私はWCF peer-to-peerがあなたのニーズに合っていると思います。

1

ソケットプログラミングですか?特定のポートでリッスンさせるようにしてください。アプリケーションが起動すると、そのソケットに接続する必要があり、両方が接続されます。アプリケーションがLAN上で実行されている他のアプリケーションインスタンスをどのように検索すべきかわかりません。

+0

それはアイデアです:)しかし、私はポートを聞いてそれらに接続できますか? – PedroC88

2

Taz氏によれば、ソケットプログラミングは最良の選択ですが、WCF(通常はお勧めできません)のような他のソリューションを使用することができます。

LANで他のインスタンスを見つけることについて、私はあなたに何らかのスキャンアルゴリズムが必要だと言えるでしょう。大部分のwormsは、拡散のためのそのようなアルゴリズムを有する。あなたは、ターゲットで開いているポートLANとファイアウォールの制限のような多くのネットワークの問題を考慮する必要があります。

5000未満のポートはオペレーティングシステムによって使用される可能性があるので、もう1つのポイントは、5000を超えるポート(最大65535、ただし有名なポートは使用しません)を使用する可能性があります。

また、ピア間のメッセージング/コマンドとデータ転送のために、TCP/IP経由で独自のプロトコルが必要です。

最後に、この種のプロジェクトでネットワーキング/セキュリティコンサルタントから手を差し伸べることをお勧めします。ほとんどの問題はプログラミングに関するものではなくネットワーキングであるためです。

+0

私はあなたが言及したすべての問題を正確に学ぶために、このアプリケーションをコーディングしています...私はアプリケーションを構築する意思が全くありません。私はちょうどネットワーク通信に関する私の知識を広げようとしています。それは基本的には何も分かりません。 – PedroC88

+2

良いです。ネットワーキングの問題を心配しないでください。まず、テスト環境が必要です。単に複数の仮想マシン(Microsoft仮想マシンは良い選択です)を使い、 'TCP/IP'を介して通信するコンソールアプリケーションに書き込みを行い、結果をコンソールとして、サーバーとして、そして別のものをクライアントとして書き込みます。次に、より複雑なもの(両方のサーバー/クライアントピア)を書くことができます。 – Xaqron

関連する問題