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 Class

层次结构图

CFile::CFile

CFile::Read