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çã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