クライアントアプリとサーバーアプリを開発しました。クライアントは http プロトコルを使用してサーバーと通信し、サーバーによって処理されるデータを送信します。
私たちの構造により、サーバーをどこにでもインストールできます。同じクライアント ネットワークにいることも、クラウドにいることもできます。
サーバーがクラウドでホストされている場合、ユーザーにサーバー アドレスを要求するのは理にかなっていますが (ユーザーが望む場合は変更できるため)、サーバーがクライアントと同じネットワーク上にある場合は意味がありません。それに加えて、現在、サーバーに接続するためにサーバーの ip/name を構成するようにユーザーに求めています。
これを回避するために (ユーザーにアドレスを尋ねる)、UDP に基づく検出サービスを開発しました。クライアントは、サーバーがそのアドレスで応答するメッセージをブロードキャストします。場合によっては機能しますが、ユーザーが何らかの種類のファイアウォール、プロキシ、またはウイルス対策を使用している場合は機能しません。
私は発見サービスについてたくさん読んだことがありますが、最も好きなものはBonjourです。
問題は、サーバーがファイアウォールやプロキシなどによってブロックされずにクライアントと同じネットワーク上にある場合、サーバーの IP を検出する最良の方法は何ですか?