Windows Sockets: Sockets de StreamWindows Sockets: Stream Sockets

Este artículo describe los sockets de secuencias, uno de los dos tipos de Windows Sockets disponibles.This article describes stream sockets, one of the two Windows Socket types available. (El otro tipo es el socket de datagrama.)(The other type is the datagram socket.)

Sockets de Stream proporcionan un flujo de datos sin límites de registro: un flujo de bytes que puede ser bidireccional (la aplicación es dúplex completo: pueden transmitir y recibir a través del socket).Stream sockets provide for a data flow without record boundaries: a stream of bytes that can be bidirectional (the application is full duplex: it can both transmit and receive through the socket). Secuencias se pueden confiar en entregar secuenciadas, sin duplicidad de datos.Streams can be relied upon to deliver sequenced, unduplicated data. ("Secuenciado" significa que los paquetes se entregan en el orden enviado.("Sequenced" means that packets are delivered in the order sent. "Sin duplicar" significa que un paquete determinado solo una vez.) Se garantiza la recepción de mensajes de secuencia y secuencias se adapta perfectamente para controlar grandes cantidades de datos."Unduplicated" means that you get a particular packet only once.) Receipt of stream messages is guaranteed, and streams are well suited to handling large amounts of data.

La capa de transporte de red puede dividir o agrupar datos en paquetes de un tamaño razonable.The network transport layer may break up or group data into packets of reasonable size. La CSocket clase controlará el empaquetado y el desempaquetado.The CSocket class will handle the packing and unpacking for you.

Secuencias se basan en conexiones explícitas: socket A solicita una conexión de socket B; socket B acepta o rechaza la solicitud de conexión.Streams are based on explicit connections: socket A requests a connection to socket B; socket B accepts or rejects the connection request.

Una llamada de teléfono es una buena analogía de una secuencia.A telephone call provides a good analogy for a stream. En circunstancias normales, la entidad de recepción escucha lo que dice en el orden en que afirman que, sin duplicación o pérdida.Under normal circumstances, the receiving party hears what you say in the order that you say it, without duplication or loss. Sockets de Stream son adecuados, por ejemplo, para las implementaciones, como el archivo de protocolo de transferencia (FTP), que facilita la transferencia ASCII o archivos binarios de tamaño arbitrario.Stream sockets are appropriate, for example, for implementations such as the File Transfer Protocol (FTP), which facilitates transferring ASCII or binary files of arbitrary size.

Sockets de Stream son preferibles a sockets de datagramas cuando los datos deben ser garantiza que lleguen y al tamaño de los datos es grande.Stream sockets are preferable to datagram sockets when the data must be guaranteed to arrive and when data size is large. Para obtener más información acerca de los sockets de secuencias, vea la especificación Windows Sockets.For more information about stream sockets, see the Windows Sockets specification. La especificación está disponible en el SDK de Windows.The specification is available in the Windows SDK.

Uso de sockets de secuencia puede ser superior a las aplicaciones diseñadas para usar un socket de datagrama de difusión a todos los sockets de recepción en la red porqueUsing stream sockets can be superior to applications designed to use a datagram socket for broadcasting to all receiving sockets on the network because

  • El modelo de difusión está sujeto a los problemas de saturación (o "storm") de red.The broadcast model is subject to network flood (or "storm") problems.

  • El modelo de cliente-servidor posteriormente es más eficaz.The client-server model adopted subsequently is more efficient.

  • El modelo de flujo proporciona la transferencia de datos confiable, donde el modelo de datagrama no.The stream model supplies reliable data transfer, where the datagram model does not.

  • El modelo final aprovecha la capacidad para comunicarse entre Unicode y ANSI, las aplicaciones de socket que ofrece la clase CArchive a la clase CSocket.The final model takes advantage of the ability to communicate between Unicode and ANSI socket applications that class CArchive lends to class CSocket.

    Nota

    Si usa la clase CSocket, debe utilizar una secuencia.If you use class CSocket, you must use a stream. Una aserción de MFC se produce un error si se especifica el tipo de socket como SOCK_DGRAM.An MFC assertion fails if you specify the socket type as SOCK_DGRAM.

Vea tambiénSee also

Windows Sockets en MFCWindows Sockets in MFC
Windows Sockets: fondoWindows Sockets: Background