私はいくつかのリモートデスクトップ機能を備えたシステムを構築しています。クライアントは、デスクトップを共有しているすべてのコンピュータとみなされます。サーバーは、複数のすべてのデスクトップのイメージを受信するデータベースを備えた中央サーバーと見なされます。クライアント側では、WindowsサービスアプリケーションとVCLフォームアプリケーションという2つのプロジェクトを構築したいと考えています。おそらく、各クライアントアプリケーションはコンピュータ上の別のユーザーアカウントで実行されているため、一度に複数のクライアントアプリケーションが実行されていて、それらのすべてがクライアントサービスにイメージを送信します。Windowsアプリケーションから大量のデータをサービスアプリに送信
サービスは、サーバーへの接続、画像の送信、およびマウス/キーボードイベントの受信を担当します。バックグラウンドで実行されているアプリケーションは、このサービスに接続してスクリーンショットをサービスに送信します。目標は、複数の「クライアント」がそこに接続してデスクトップイメージを送信できる間に、1つのサービスが実行されていることです。このサービスは、異なる "クライアント"からのこれらすべてのスクリーンショットを受け取る "中央サーバー"に接続されます。イメージは保存され、ログに記録されるか、その "クライアント"を表示しているダッシュボードにリダイレクトされます。
問題は、イメージを送信するためにクライアントアプリケーションにクライアントアプリケーションを接続するためにどのような方法を使用すべきですか?それらは同じコンピュータ上で実行されます。私は単純なコマンドパケットを送信する機能と、画像の塊をストリームする機能の両方が必要になります。私はIndyコンポーネント(TIdTCPServer
など)を使用しようとしていましたが、もっと簡単で洗練された方法で作業する必要があります。私はプロジェクトの他の場所でIndyコンポーネントも使用しています。
ここで私が目指しているシステム全体の図を示します。アプリケーションが同じコンピュータ内のサービスに接続する、右端と左端の部分が心配です。ご覧のように、レイヤーがたくさんあるので、私が使用している方法が膨大な量の画像データをストリーミングするのに十分強力であることを確認する必要があります。
[Delphi 2009:Vistaの下でWindowsサービスとデスクトップアプリケーションを通信するにはどうすればいいですか?](http://stackoverflow.com/questions/1260181/delphi-2009-how-to-communicate-between-windows- –
@KenWhite私の質問は大きな画像をストリーミングすることに関するもので、他の質問は明示的に「小さな文字列」を参照しているので解決策には同意できませんが、解決策は似ているかもしれません。異なる。 –
あなたはその質問に対する答えを読んで気になりましたか?「プロセス間通信」に関するいくつかの異なるオプションがありました(これは、このサイトの素晴らしい[検索](http://stackoverflow.com/search?q=interprocess+communication+ [delphi])トピックです。 '[delphi]'タグ)。 –