Windows Sockets : sockets flux
Cet article décrit les sockets flux, l'un des deux types Winsock disponibles.(L'autre type est socket datagramme.)
Sockets flux d'un flux de données sans limites d'enregistrement : un flux d'octets qui peuvent être bidirectionnelles (l'application est bidirectionnel simultanément : il peut transmettre et le recevoir via le socket).Il peut compter au moment de flux de données pour fournir des données ordonnancées et unduplicated.(« Séquencé » signifie que des paquets sont remis dans l'ordre envoyée. "Unduplicated » signifie que vous obtenez un à en-tête pack particulier une seule fois.) La réception des messages de flux de données est garantie, et les flux de données sont bien adaptés à gérer de grandes quantités de données.
La couche du protocole réseau peut se diviser ou les données du groupe des packs de taille raisonnable.La classe d' CSocket gérera la compression et décompacter pour vous.
Les flux de données reposent sur les connexions explicites : le socket A demande une connexion au socket B ; le socket B accepte ou rejette la demande de connexion.
Un appel téléphonique fournit une bonne on pour un flux.Dans des circonstances normales, la partie de réception entend ce que vous indiquez dans l'ordre que vous la supposons, sans duplication ou perte.Sockets flux sont appropriés, par exemple, pour les implémentations telles que le protocole (FTP) FTP, ce qui simplifie transférer ASCII ou des fichiers binaires de taille arbitraire.
Sockets flux sont préférables aux sockets datagramme lorsque les données doivent être garanti arriver et lorsque la taille des données est volumineuse.Pour plus d'informations sur les sockets flux, consultez la spécification de Windows Sockets layer).La spécification est disponible dans Kit de développement logiciel Windows.
Utilisation des sockets flux peut être supérieur aux applications conçues pour utiliser un socket datagramme pour diffuser à tous les sockets recevoir sur le réseau car
Le modèle de diffusion est rubrique problèmes d'inondation de réseau (ou à « tempête »).
Le client-server model adopté ensuite est plus efficace.
Le modèle de flux de données fournit le transfert de données fiable, où le modèle de datagramme ne le fait pas.
Le modèle final tire parti de la capacité de communication entre Unicode et les applications de socket ANSI que la classe CArchive prête à la classe CSocket.
[!REMARQUE]
Si vous utilisez la classe CSocket, vous devez utiliser un flux de données.Une assertion MFC échoue si vous spécifiez le type de socket comme SOCK_DGRAM.