私はC#でマルチクライアント/マルチサーバープログラムを開発していますが、要点を理解する前に、誰かが同様のプロジェクトに取り組んだことがあり、実装のヒントやアイデアを共有できるのではないかと考えていました。
- サーバーは多くのPCに配置され、クライアントからの着信接続をリッスンします(または、サーバーがブロードキャストし、クライアントがリッスンする必要がありますか?)。
- クライアントが起動すると、潜在的なサーバーIPアドレスのリストが自動的に入力されます。
- サーバーが閉じると、クライアントはそのサーバーをリストから削除する必要があります。
- 新しいサーバーが起動したら、クライアントに通知してリストに追加する必要があります。
- サーバーはクライアントとしても機能する可能性があり、サーバー自体と他のすべてのサーバーを認識できる必要があります。
- クライアントからサーバーに送信され、サーバーに影響を与えるメッセージは、接続されているすべてのクライアントに変更をブロードキャストする必要があります。
- サーバーはWindowsサービスである必要がありますか?それにはどのような長所/短所がありますか?
これを始める方法について何かアイデアはありますか?私はUDPマルチキャストとLANスキャンを調べてきました。C#と.NET4.0を使用しています
編集:これを見つけました:http ://code.google.com/p/lidgren-network-gen3/誰かがそれを使った経験があり、それを推奨する/推奨しないことができますか?