CSocketFile::CSocketFile
CSocketFile オブジェクトを構築します。
explicit CSocketFile(
CSocket* pSocket,
BOOL bArchiveCompatible = TRUE
);
パラメーター
pSocket
CSocketFile にオブジェクトを追加する、ソケット。bArchiveCompatible
オブジェクト ファイルが CArchive のオブジェクトで使用するかどうかを指定します。CFile スタンドアロン オブジェクトのように一定の制限に依存しない方法で CSocketFile のオブジェクトを使用する場合のみ FALSE を渡します。このフラグがアタッチされている CSocketFile のオブジェクトへの CArchive のオブジェクトが読み取ることのバッファーを管理する方法を変更します。
解説
オブジェクトのデストラクターは、オブジェクトがスコープ外に出る、または削除されてもソケットのオブジェクトから自身を引き離します。
[!メモ]
CSocketFile は、CArchive のオブジェクトを持たないとしての (制限付き) ファイル使用できます。既定では、CSocketFile のコンストラクターの bArchiveCompatible のパラメーターは [真]です。これは、ファイル オブジェクトがアーカイブで使用することを指定します。アーカイブ ファイルなしでオブジェクトを使用するには、bArchiveCompatible のパラメーターの FALSE を渡します。
「Archive」互換性のあるのモードでは、CSocketFile のオブジェクトは、より優れたパフォーマンスを実現し、「デッドロックの危険性を減らします」。デッドロックは送受信ソケットが互いに待機する、または場合、共通のリソースに対して。この状況は CSocketFile を使用する CArchive のオブジェクトのオブジェクト CFile する方法と発生する場合があります。CFileを使用すると、アーカイブが一部のバイトを受け取った場合は、ファイルの終端到達した要求したと想定できます。
ただし、CSocketFileしてデータは、メッセージです。; バッファーは必要なバイト数がファイルの終端を示すわけよりも少ないため、複数のメッセージを受信を含めることができます。アプリケーションは、バッファーが空になるまでと CFile場合もあります。、バッファーからメッセージを読み取りを行うことができるようにこの場合、ブロックします。CArchive::IsBufferEmpty 関数は、アーカイブ バッファーの状態をそのような場合には、監視するのに役立ちます。
CSocketFileの使用の詳細については、" " Windows ソケット: アーカイブを持つソケットを使用する と Windows ソケット: アーカイブを使用してソケットの例を参照してください。
必要条件
Header: afxsock.h