Windows Sockets: Fluxo Sockets

Este artigo descreve os soquetes de fluxo, um dos dois tipos de soquete do Windows disponíveis.(O outro tipo é o soquete de datagrama.)

Soquetes fluxo fornecem um fluxo de dados sem limites de registros: um fluxo de bytes que pode ser bidirecional (o aplicativo é full-duplex: ele pode transmitir e receber através do soquete).Fluxos podem confiar para fornecer dados seqüenciados e unduplicated.("Sequenced" significa que os pacotes são entregues na ordem enviada. "Unduplicated"significa que você obtenha um pacote específico apenas uma vez.) Garantia de recebimento de mensagens de fluxo e fluxos são bem adequados para lidar com grandes quantidades de dados.

A camada de transporte de rede pode dividir ou agrupar os dados em pacotes de tamanho razoável.O CSocket classe tratará a embalagem e desembalagem para você.

Fluxos são baseados em conexões explícitas: soquete a solicita uma conexão de soquete B; soquete b aceita ou rejeita a solicitação de conexão.

Uma chamada telefônica fornece uma boa analogia para um fluxo.Em circunstâncias normais, a parte destinatária ouve dizer na ordem de dizer, sem duplicação ou perda.Soquetes fluxo são apropriados, por exemplo, para implementações, como o protocolo FTP (File Transfer), que facilita a transferência ASCII ou arquivos binários de tamanho arbitrário.

Soquetes fluxo são soquetes datagrama preferível quando os dados devem ser garantidos para chegar e quando o tamanho dos dados é grande.Para obter mais informações sobre soquetes de fluxo, consulte a especificação de Windows Sockets.A especificação está disponível na Windows SDK.

Usar soquetes fluxo pode ser excelente para aplicativos criados para usar um soquete de datagrama para transmitir para todos os soquetes de recebimento na rede porque

  • O modelo de difusão está sujeita a problemas de inundação (ou "tempestade") da rede.

  • O modelo cliente-servidor adotado subseqüentemente é mais eficiente.

  • O modelo de fluxo fornece transferência de dados confiável, onde o modelo de datagrama não.

  • O modelo final aproveita a capacidade de se comunicar entre Unicode e ANSI aplicativos de soquete classe que carchive presta a classe CSocket.

    ObservaçãoObservação

    Se você usar a classe CSocket, você deve usar um fluxo.Uma declaração de MFC falha se você especificar o tipo de soquete SOCK_DGRAM.

Consulte também

Conceitos

Windows Sockets no MFC

Windows Sockets: plano de fundo