HTTPリクエストを処理し、それらの一部をリモートサーバーに渡し、他の人に直接応答するように設計された、一種の「プロキシ」であるマルチプラットフォームアプリケーションを作成しています。したがって、HTTP クライアントと HTTP サーバーの両方として機能します。
私は Delphi と Lazarus の両方で Indy 10 コンポーネントを使用してきましたが、それらはデスクトップ プラットフォームでうまく動作します。Lazarus を使用して、プロジェクトを Windows、Linux、および MacOS に正常に移植しました。現在、Delphi XE4 を使用して、iOS に対して同じことを試みています。現在、OSX 10.8.2 を実行している Mac の iOS シミュレーターでプロジェクトを実行しています。後で、iPad デバイスをターゲットにします。
しかし、iOS で着信要求への接続を作成する TIdHTTPServer コンポーネントを取得できないことがわかりました。サーバーを IP アドレスとポートにバインドしてアクティブにします。これにより、リスナー スレッドが開始されます。しかし、GET 要求をサーバーに送信しようとすると、「要求された IPVersion / アドレス ファミリはサポートされていません」というメッセージとともに例外 EIdIPVersionUnsupported が発生します。このエラーは、GET 要求をアプリケーション自体からルーティングしようとしても、別のマシンで実行されているブラウザーから外部的にルーティングしようとしても発生します。
プロキシは、フォアグラウンドで実行されているブラウザーからの要求を処理するバックグラウンド プロセスとして実行することを目的としているため、通常、HTTP サーバーを localhost の IP アドレスにバインドします。外部ブラウザ テストでは、代わりに Mac 自体の IP アドレスにバインドしました。