CSocketFile::CSocketFile

构造 CSocketFile 对象。

explicit CSocketFile(
   CSocket* pSocket,
   BOOL bArchiveCompatible = TRUE 
);

参数

  • pSocket
    附加到 CSocketFile 对象的套接字。

  • bArchiveCompatible
    指定文件对象是否正常工作。CArchive 对象的。请通过 FALSE,只有在要使用 CSocketFile 对象与独立模式,您将独立 CFile 对象的情况下,对于某些限制。此标志更改附加 CArchive 对象。CSocketFile 对象如何管理其读取缓冲区。

备注

当对象超出范围或删除时,对象的析构函数从套接字对象分离自身。

说明说明

CSocketFile 也可用作(有限)文件,而不 CArchive 对象。默认情况下,CSocketFile 构造函数的 bArchiveCompatible 参数是 TRUE。这指定文件对象功能上与存档。使用文件对象,而无需存档中,通过在 bArchiveCompatible 参数的 FALSE

在其“archive”兼容模式,CSocketFile 对象提供更好的性能和减少“死锁的危险”。死锁为公共资源时,会发生的发送和接收的套接字等待彼此,或。此缺陷可能发生,如果 CArchive 对象与 CSocketFile 一起使用以执行与 CFile 对象的方法。CFile,存档能假定,则为;如果收到的字节比请求,文件结尾已到达。

CSocketFile,但是,数据是基于的消息;缓冲区少于请求的字节数不提示文件尾可以包含多个消息,因此,接收。应用程序在这种情况下不阻止,它可以与 CFile,因此,它可以继续读取缓冲的消息,直到缓冲区为空时。CArchive::IsBufferEmpty 函数用于在监视存档的缓冲区的状态很有用。

有关使用 CSocketFile的更多信息,请参见位于 Windows套接字:使用套接字与存档Windows套接字:套接字的示例使用中的存档

要求

Header: afxsock.h

请参见

参考

CSocketFile选件类

层次结构图

CFile::CFile

CFile::Read