Partilhar via


CSocketFile::CSocketFile

Constrói um objeto de CSocketFile .

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

Parâmetros

  • pSocket
    o soquete para anexar a CSocketFile o objeto.

  • bArchiveCompatible
    Especifica se o objeto do arquivo é para uso com um objeto de CArchive . Passar Falso somente se você desejar usar o objeto de CSocketFile de forma independente como você um objeto autônomo de CFile , com algumas restrições. Este sinalizador alterações como o objeto de CArchive anexado ao objeto de CSocketFile gerencia o buffer para.

Comentários

O destrutor do objeto dissocia-se do objeto de soquete quando o objeto ou sai do escopo é excluído.

Dica

CSocketFile também pode ser usado como arquivo (limitado) sem um objeto de CArchive.Por padrão, o parâmetro de bArchiveCompatible do construtor de CSocketFile é Verdadeiro.Isso especifica que o objeto do arquivo é para uso com um arquivo neutro.Para usar o objeto do arquivo sem um arquivo, passar Falso no parâmetro de bArchiveCompatible .

Em o modo de “compatível o arquivamento”, um objeto de CSocketFile fornece melhor desempenho e reduz o risco de uma”. “deadlock Um deadlock ocorre quando enviando e os soquetes de recepção estão aguardando em si, ou para um recurso comum. Esta situação pode ocorrer se o objeto de CArchive trabalhando CSocketFile a maneira que faz com um objeto de CFile . Com CFile, o arquivo neutro pode assumir que se recebe bytes menor do que solicitou, a fim do arquivo foi alcançado.

Com CSocketFile, no entanto, os dados são mensagem com base; o buffer pode conter vários mensagens, o que recebem de menor que o número de bytes aplicativos não indica o fim do arquivo. O aplicativo não pode bloquear em esse caso como com CFile, e pode continuar a ler mensagens de buffer até que o buffer está vazia. A função de CArchive::IsBufferEmpty é útil para monitorar o estado do buffer do arquivamento em tais casos.

Para obter mais informações sobre o uso de CSocketFile, consulte os artigos Soquetes do windows: usando os soquetes com arquivos mortos e Soquetes do windows: Exemplo da usando arquivos mortos.

Requisitos

Cabeçalho: afxsock.h

Consulte também

Referência

Classe CSocketFile

Gráfico da hierarquia

CFile::CFile

CFile::Read