連載2 画像転送システム その1
プログラムは画像を送る側の「サーバー」と、受け取った画像を表示する「クライアント」の2つからなり、主な処理は次のようになります。

デスクトップキャプチャーにはGDIのBitBlt()を使いDIBデータを取得します、それをコーデックのコンプレッサーで圧縮して、最後にTCPのソケット通信で送信します。この処理を延々と繰り返すのがサーバー側のプログラムです。
一方クライアント側はソケット通信でデータを受信するところから始まります。受信したデータはコーデックのデコンプレッサーを使ってDIBデータを復元します。復元されたDIBはGDIのStretchBlt()でウインドウいっぱいに表示します。クライアント側はこの処理を延々と繰り返します。
実際にはサーバー側の処理が早すぎるとクライアントの処理が間に合わず通信データが溜まって行ってしまうので、サーバー側にはウエイトを入れてフレームレートをコントロールします。
ちなみに、アマレココの場合はキャプチャーと圧縮までがサーバー側プログラムと同じで後はaviのヘッダーを付けてファイルへ保存する処理となります。送信部分がファイル処理に置き換わるだけなので殆ど同じ仕組みで動いていると言えますね。
次回からは各々の処理についてもう少し詳しく書いていきたいと思います。
qqq
trackback
コメントの投稿