Compartir a través de


Conexión con sockets (HTML)

[ Este artículo está destinado a desarrolladores de Windows 8.x y Windows Phone 8.x que escriben aplicaciones de Windows en tiempo de ejecución. Si estás desarrollando para Windows 10, consulta la documentación más reciente

Envía y recibe datos con sockets TCP o UDP en tu aplicación de la Tienda Windows usando las características del espacio de nombres Windows.Networking.Sockets.

Los sockets proporcionan una interfaz de bajo nivel para enviar y recibir datos de red. Algunas de las clases principales para usar con sockets son:

  • DatagramSocket - Se usa para admitir comunicaciones de red con un socket de datagramas UDP.
  • StreamSocket - Se usa para admitir comunicaciones de red con un socket de secuencias TCP.
  • StreamSocketListener - Se usa para admitir la capacidad de escuchar una conexión entrante con un socket de secuencias TCP.

Las clases principales indicadas arriba tienen varias clases de soporte relacionadas en el espacio de nombres Windows.Networking.Sockets que se usa con ellas.

Audiencia del desarrollador

Esta diseñada para desarrolladores de Javascript, C#, VB.NET y C++ que quieren habilitar el uso de sockets para comunicaciones de red en aplicaciones de Windows en tiempo de ejecución. Esta característica incluye sockets TCP y UDP (incluida la multidifusión UDP) para permitir que los desarrolladores implementen otros protocolos de red de nivel superior. Una aplicación puede usar los sockets TCP y UDP para establecer conexiones de cliente, escuchar conexiones y operar como un servidor en operaciones de cliente y en operaciones de servidor.

Considera la utilización de los siguientes protocolos en función de los requisitos de tu aplicación.

Si la aplicación Usa

se conecta a un servicio de red que usa un protocolo existente (SMTP, POP, IMAP o MAPI para correo, por ejemplo) que no es directamente compatible con otras características de red,

sockets TCP o UDP.

se conecta a otro equipo en la misma red local,

sockets TCP o UDP.

requiere un protocolo simple de solicitud-respuesta que puede comunicarse a través de proxies HTTP,

API de transferencia de estado representacional (REST) disponibles con C#, VB.NET y C++.

requiere semántica del tipo socket (transferencias asincrónicas bidireccionales) para conectarse en la Web, incluso a través de proxies HTTP,

WebSocket.

 

Los sockets se admiten en las clases de los espacios de nombres Windows.Networking.Sockets y Windows.Networking.

Windows 8 también introduce un nuevo tipo de socket, un WebSocket. Si quieres obtener más información, consulta Conexión con WebSockets y las clases MessageWebSocket y StreamWebSocket.

En esta sección

Tema Descripción
Cómo conectarse a un socket de secuencias

Obtén más información acerca de cómo conectar un recurso de red con un socket de secuencias mediante TCP, para enviar y recibir datos.

Cómo conectarse con un socket de datagramas

Obtén información acerca de cómo conectar un recurso de red con un socket de datagramas mediante UDP, para enviar y recibir datos.

Cómo usar controles de sockets avanzados

Obtén información acerca de cómo usar controles de sockets avanzados con DatagramSocket, StreamSocket o StreamSocketListener.

Cómo proteger conexiones de sockets con TLS/SSL

Obtén información acerca de cómo asegurar conexiones de sockets con TLS/SSL cuando se usa StreamSocket.

Cómo establecer tiempos de espera en operaciones de socket

Aprende a establecer tiempos de espera en operaciones de sockets de red para limitar el tiempo que se esperará a que finalice una operación.

 

Uso de sockets con aislamiento de red

La característica de aislamiento de red de Windows 8.1, Windows Phone 8.1 y Windows Server 2012 R2 permite al desarrollador controlar y limitar el acceso a la red de una aplicación de Windows en tiempo de ejecución. No todas las aplicaciones necesitarán tener acceso a la red. No obstante, para la aplicaciones que sí deben acceder, Windows 8.1 y Windows Server 2012 R2 proporcionan distintos niveles de acceso a la red que pueden habilitarse seleccionando las funcionalidades adecuadas.

El aislamiento de red permite al desarrollador definir el ámbito de acceso a la red requerido para cada aplicación. Si una aplicación no tiene definido el ámbito de acceso apropiado, no podrá acceder al tipo especificado de red ni al tipo específico de solicitud de red (las solicitudes salientes iniciadas por el cliente o ambas, las solicitudes entrantes no solicitadas y las solicitudes salientes iniciadas por el cliente). La capacidad de establecer y exigir el aislamiento de red garantiza que si una aplicación se compromete, solo puede acceder a las redes a las que se le haya concedido acceso de forma explícita. Esto reduce significativamente el ámbito del impacto en otras aplicaciones y en Windows.

El aislamiento de red afecta a todos los elementos de clase en el espacio de nombres Windows.Networking.Sockets y en los espacios de nombres relacionados que intentan acceder a la red. Windows aplica de manera activa el aislamiento de red. Si no se habilita la funcionalidad de red que corresponde, una llamada a un elemento de clase del espacio de nombres Windows.Networking.Sockets que implique el acceso a la red puede presentar errores, debido al aislamiento de red.

Las funcionalidades de red para una aplicación se configuran en su manifiesto al crear la aplicación. Las funcionalidades de red se suelen agregar con Microsoft Visual Studio 2013, cuando la aplicación se desarrolla. Las funcionalidades de red también pueden establecerse de forma manual en el manifiesto mediante el uso de un editor de texto.

Si quieres obtener información más detallada acerca del aislamiento de red, consulta el tema sobre procedimientos para configurar funcionalidades de aislamiento de red.

Temas relacionados

Otros recursos

Adición de compatibilidad para redes

Conexión con WebSockets

Cómo configurar funcionalidades de aislamiento de red

Cómo configurar opciones de conectividad en segundo plano

Solución de problemas y conexiones de red de depuración

Referencia

Windows.Networking

Windows.Networking.Connectivity

Windows.Networking.Sockets

Muestras

Muestra de DatagramSocket

Muestra de StreamSocket