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.

ObservaçãoObservação

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 de CSocketFile

Gráfico de hierarquia

CFile::CFile

CFile::Read