Windows Sockets: socket di flusso

Questo articolo vengono descritti i socket di flusso, uno dei due tipi di socket di windows disponibili.(L'altro tipo è socket di datagramma).

i socket di flusso prevedono un flusso di dati senza limiti record: un flusso di byte che possono essere bidirezionali (l'applicazione è pieno duplex: è possibile trasmettere che ricevere tramite il socket).I flussi possono essere basati su per inviare dati ordinati e unduplicated.(“Ordinato„ significa che i pacchetti sono resi disponibili nell'ordine inviato. Unduplicated„ significa visualizzato solo quando un particolare pacchetto.) La ricezione dei messaggi del flusso è garantito e i flussi si ne consiglia di gestire grandi quantità di dati.

Il livello di trasporto di rete possibile suddividere o dati del gruppo dei pacchetti di dimensione ragionevole.La classe di CSocket gestirà la compressione e la decompressione automaticamente.

I flussi sono basati sulle connessioni esplicite: il socket A richiede una connessione a un socket B; il socket B non accetta o rifiuta la richiesta di connessione.

Una telefonata fornisce una buona analogia per un flusso.In condizioni normali, la parte di ricezione sente cosa si indica all'ordine in cui lo si indica a, senza duplicazione o perdita.I socket di flusso sono appropriati, ad esempio, per le implementazioni come il (FTP) protocollo FTP, che facilita trasferire ASCII o i file binari di dimensione arbitraria.

I socket di flusso sono preferibili ai socket di datagramma quando i dati vengano garantiti per ricevere e quando la dimensione dei dati è di grandi dimensioni.Per ulteriori informazioni sui socket di flusso, vedere la specifica di Windows Sockets.La specifica è disponibile in Windows SDK.

Utilizzo di socket di flusso può essere superiore alle applicazioni progettate per utilizzare un socket di datagramma per la trasmissione a tutti i socket ricevere sulla rete perché

  • Il modello di trasmissione presenta i problemi dell'inondazione di rete (o “tempesta„).

  • Il client-server model adottato avanti è più efficiente.

  • Il modello del flusso garantisce il trasferimento dei dati affidabile, in cui il modello di datagram contrario.

  • Il modello finale sfrutta la possibilità di comunicazione tra Unicode e le applicazioni di socket ANSI che venga CArchive indicata per classificare CSocket.

    [!NOTA]

    Se si utilizza la classe CSocket, è necessario utilizzare un flusso.Un'asserzione MFC ha esito negativo se si specifica il tipo di socket come SOCK_DGRAM.

Vedere anche

Concetti

In Windows Sockets MFC

Windows Sockets: sfondo