0

Indy を使用して着信メッセージをエミュレートすることは可能ですか (重要な場合: Indy 10 と Delphi 2009 を使用しています)。私はこれらのメッセージをローカルで作成できるようにしたいと考えており、ネットワーク内の特定のクライアントからのものであると Indy に認識させたいと考えています。すべての内部 Indy 処理 (メッセージが受信されるスレッドの選択など) は、メッセージがネットワーク経由で到着した場合とまったく同じである必要があります。

それに関するアイデアはありますか?ヒントをお寄せいただきありがとうございます。

4

4 に答える 4

5

あなたがやりたいことは、はるかに低いレベルでこれを行う必要があるため、Indy とは何の関係もありません。メッセージが特定のクライアントからのものであると Indy に信じ込ませる最も簡単な方法は、適切に準備されたパケットをネットワーク スタックに注入することです。Google またはウィキペディアで TCP パケット インジェクションについて調べてください。EtterCapは、確立された接続にパケットを挿入できるツールの 1 つです。ただし、一部の国では一部のツールが違法であるため、これは間違いなく灰色の領域に入っています.

とにかく、これはすべて複雑すぎる私見です。あなたが何をしたいのか正確にはわかりませんが、特別に準備されたクライアントまたはサーバーは、サーバーまたはクライアントアプリケーションの開発中に特定の動作をエミュレートするためのはるかに優れたツールです. それらをローカルで実行することも、別の IP アドレスまたはサブネットが必要な場合は、仮想マシンで多くのことを実行できます。

于 2009-04-29T09:03:16.347 に答える
0

Indyにはこのための組み込みのメカニズムはありませんが、頭の中で考えてみると、開発マシンでローカルに実行され、Indyサーバーアプリケーションに接続してメッセージを再生する小さなテストアプリケーション(またはスイート)を構築することをお勧めします。 。

サーバースレッドが作成され、コマンドが処理されるメカニズムは両方のシナリオと同じであるため、TCP接続がローカルまたはリモートホストから行われる場合は、Indyサーバーアプリケーションとは無関係である必要があります。

私の最後のギグはIndyの使用に関係し、すべてのテストは、ローカルメッセージファイルをロードしてIndyサーバーアプリに送信する同様のResenderタイプのアプリケーションを使用して行われました。

HTHと頑張ってください!

于 2009-04-29T08:40:33.933 に答える
0

できることの 1 つは、仮想マシンを作成してテスト クライアントを実行することです。そうすれば、それらは「ローカル マシン」とは見なされず、十分なメモリとディスクがあれば、VMS を使用して複雑なネットワークを作成するのは非常に簡単です。スペース。VM を使用したテストのもう 1 つの利点は、展開に集中するときに開発環境を完全に排除できることです。一人でどれだけの時間を節約できるかは驚くべきことです。

VirtualPCは Microsoft から無料でダウンロードでき、かなりうまく機能します。 VMWareには別のオプションがありますが、開始するにはもう少し費用がかかります。開発目的では、デスクトップ バージョンを好みますが、サーバー バージョンもうまく機能します。仮想 OS をインストールするには、引き続きライセンスが必要です。 MSDNメンバーシップはおそらく最も安価な方法であり、OS の他のフレーバーのテスト環境を構築できます。

于 2009-04-29T16:00:34.720 に答える
0

Indy には、クロスプラットフォーム サポート用の抽象スタック メカニズム (IDStack.pas) があります。Windows 用のスタック (IdStackWindows.pas) をハックできると思います。クラスです。U はそれを派生させ、いくつかの関数をオーバーライドしてハックを行うことも検討できます。

于 2009-07-06T20:59:57.920 に答える