つまり、クライアント構成がゼロの(おそらくマルチセグメント化された)ローカルエリアネットワーク上のどこかで実行されているサーバーを確実に検出する方法
クライアントアプリケーションは、サーバーのIPアドレスを知らなくてもサーバーアプリケーションを見つける必要があります。ハブまたは他のスイッチングデバイスでセグメントに分割される可能性のあるローカルLANで動作する必要があります。
私はすでに実用的なソリューションを持っていますが、マルチセグメントネットワークでそれを機能させるのは少し面倒です。次のように機能します。
クライアントが起動すると、クライアントは独自のネットワークセグメントでUDPブロードキャストを送信します。サーバーが同じセグメントで実行されている場合、サーバーは問題なく動作します。サーバーは適切なメッセージで応答します。
サーバーとクライアントがUDPを転送しないハブ/スイッチで区切られたネットワークで実行されている場合(最も可能性の高いケース)、各セグメントでサーバーインスタンスを実行しており、TCPを介してクライアント要求を相互に転送します-ただし、これをサーバーインスタンス用に構成する必要があります(単純ですが、それでも技術サポートには苦労します)。これは、対処する必要のある主な問題です。5つまたは6つの別々のセグメントで実行されている何百ものクライアントがあるサイトがあります。
私が直面している問題:1。アプリケーションインストーラーがファイアウォールの適切なポートを有効にしているのに、これが正しく行われていないように見える状況に遭遇することがあります。2. UDPを転送しないハブ/スイッチドネットワークで複数のサーバーインスタンスを実行する(したがって、それらを構成および維持する)必要がある
最後に、Active Directoryやその他のルックアップサービスが構成されていない可能性のある最小限のWindowsネットワーク(XP / 2000 / Vista)でメンテナンスなしで機能するソリューションが必要です。
このためにランタイムのものにタグを付けたくありません-プレーンVC++またはDelphiでそれを行うことができるはずです。
商用アプリは通常どのようなアプローチを取りますか?SQL Serverがブロードキャスト呼び出しとNetBEUI呼び出しの組み合わせを使用していることを知っています(これについては間違っている可能性があります)。
前もって感謝します。