2016-04-18 4 views
0

こんにちはtcpプロキシサーバーとして機能する中間アプリケーションを作成することは可能ですか?それは2つのコンポーネントで構成されます。 IdTCPServerおよびIdTCPClient。アイデアは:Indyを使用してTCP TUNNELINGシステムを作成する

アプリケーション> IdTCPServerに接続>すべてのデータは、宛先に接続されているIdTCPClientにリダイレクトされます。

そして、TCPClientによって受信されたデータは、IdTCPServerとアプリケーションにリダイレクトされます。 私はこのような単純なアプリケーションを作って、それはHTTPリクエストで動作しますが、RDPクライアントに使用しようとすると失敗します(プロトコルが間違っているというエラーが出ます)。それも可能ですか?私はReadByteメソッドを使い、各1バイトは他のIOHandlerに送られます。

私は、NAT経由の接続を可能にする仮想tcpチャネルを作成したいと考えています。

私は十分に明確ではありませんでした。達成したいのは次のようなものです:

RDPサーバー< IdTCPClient <> IdTCPclient> NAT> IdTCPServer < RDPClient。

答えて

4

アプリケーション> IdTCPServerに接続>すべてのデータが宛先に接続されているIdTCPClientにリダイレクトされます。

そして、TCPClientによって受信されたデータは、IdTCPServerとアプリケーションにリダイレクトされます。

実際、インディはその目的のための具体的なコンポーネント - TIdMappedPortTCPを持っています。

MappedHostMappedPortのプロパティを目的の場所を指すように設定し、それをアクティブにすると、すべての受信接続が自動的に宛先に転送され、データが双方向で前後に渡されます。

2

コメントを追加するつもりでしたが、十分なポイントがありませんでした。 あなたのリクエストは、あなたが "リダイレクト"したいと言っています。

しかし、自分でデータを渡したいと思うように聞こえます(man-in-the-middle)。 RDP contains some guards against thatがありますが、以前のバージョンではよりオープンになっている可能性があります。

実際のリダイレクトが探しているものでない場合は、質問をより厳密に指定することをおすすめします。

+0

はい、私は十分正確ではありませんでした。私はその質問を編集した。 – Flash

関連する問題