Windows.Networking.Sockets Espace de noms

Fournit des sockets et des classes WebSockets à utiliser pour les communications réseau et des classes pour les notifications réseau en temps réel reçues en arrière-plan pour les applications UWP.

Classes

ControlChannelTrigger

Permet de recevoir des notifications en temps réel en arrière-plan pour les objets qui établissent une connexion TCP et souhaitent être avertis du trafic entrant.

Appelez **BackgroundExecutionManager.RequestAccessAsync** avant d’utiliser ControlChannelTrigger.

Notes

Cette classe n’est pas prise en charge sur Windows Phone.

DatagramSocket

Prend en charge la communication réseau à l’aide d’un socket de datagramme UDP.

Pour obtenir un exemple de code, consultez Sockets.

DatagramSocketControl

Fournit des données de contrôle de socket sur un objet DatagramSocket .

DatagramSocketInformation

Fournit des informations de socket sur un objet DatagramSocket .

DatagramSocketMessageReceivedEventArgs

Fournit des données pour un événement MessageReceived sur un DatagramSocket.

MessageWebSocket

Prend en charge la communication réseau qui permet de lire et d’écrire des messages entiers à l’aide d’un WebSocket.

MessageWebSocketControl

Fournit des données de contrôle de socket sur un MessageWebSocket.

MessageWebSocketInformation

Fournit des informations de socket sur un MessageWebSocket.

MessageWebSocketMessageReceivedEventArgs

Fournit des données pour un événement de message reçu sur un MessageWebSocket.

ServerMessageWebSocket

Prend en charge la communication réseau qui permet de lire et d’écrire des messages entiers à l’aide d’un objet WebSocket appartenant à un serveur web. Vous ne pouvez pas vous inscrire à une connexion WebSocket arbitraire ; au lieu de cela, un instance de ServerMessageWebSocket est créé par le code système tel que le portail d’appareil Windows (WDP).

ServerMessageWebSocketControl

Fournit des données de contrôle de socket sur un ServerMessageWebSocket.

ServerMessageWebSocketInformation

Fournit des informations de socket sur un ServerMessageWebSocket.

ServerStreamWebSocket

Prend en charge la communication réseau qui permet de lire et d’écrire des flux à l’aide d’un objet WebSocket appartenant à un serveur web. Vous ne pouvez pas vous inscrire à une connexion WebSocket arbitraire ; au lieu de cela, un instance de ServerStreamWebSocket est créé par le code système tel que le portail d’appareils Windows (WDP).

ServerStreamWebSocketInformation

Fournit des informations de socket sur un objet ServerStreamWebSocket .

SocketActivityContext

Contexte associé à un socket lors du transfert de la propriété du socket entre une application et le service de brokering de socket.

SocketActivityInformation

Fournit des informations sur le socket transféré à partir du Socket Broker.

SocketActivityTriggerDetails

Objet instancié par l’infrastructure broker en arrière-plan et utilisé par une application pour récupérer des détails lorsqu’un SocketActivityTrigger se produit.

SocketError

Fournit des status d’erreur de socket pour les opérations sur un DatagramSocket, StreamSocket ou StreamSocketListener.

StreamSocket

Prend en charge la communication réseau à l’aide d’un socket de flux via TCP ou Bluetooth RFCOMM dans les applications UWP.

StreamSocketControl

Fournit des données de contrôle de socket sur un objet StreamSocket .

StreamSocketInformation

Fournit des informations de socket sur un objet StreamSocket .

StreamSocketListener

Prend en charge l’écoute d’une connexion réseau entrante à l’aide d’un socket de flux TCP ou d’un bluetooth RFCOMM.

StreamSocketListenerConnectionReceivedEventArgs

Fournit des données pour un événement ConnectionReceived sur un objet StreamSocketListener .

StreamSocketListenerControl

Fournit des données de contrôle de socket sur un objet StreamSocketListener .

StreamSocketListenerInformation

Fournit des informations de socket sur un objet StreamSocketListener .

StreamWebSocket

Prend en charge la communication réseau qui permet de lire et d’écrire des flux à l’aide d’un WebSocket.

StreamWebSocketControl

Fournit des données de contrôle de socket sur un objet StreamWebSocket .

StreamWebSocketInformation

Fournit des informations de socket sur un objet StreamWebSocket .

WebSocketClosedEventArgs

Fournit des données pour un événement fermé sur un objet MessageWebSocket, StreamWebSocket ou IWebSocket .

WebSocketError

Fournit des status d’erreur de socket sur un objet MessageWebSocket ou StreamWebSocket.

WebSocketKeepAlive

Permet d’envoyer un protocole WebSocket keep-alive sur un WebSocket connecté.

WebSocketServerCustomValidationRequestedEventArgs

Fournit des données pour un événement ServerCustomValidationRequested sur un WebSocket. Cet événement se produit lorsqu’une nouvelle connexion sécurisée à un WebSocket est établie et donne à votre code la possibilité d’effectuer une validation personnalisée des certificats de serveur avant l’établissement de la connexion.

Structures

BandwidthStatistics

Représente les informations de bande passante pour le transfert de données réseau à l’aide d’un objet StreamSocket, StreamWebSocket ou MessageWebSocket .

RoundTripTimeStatistics

Représente les informations sur le temps aller-retour d’un objet StreamSocket .

Interfaces

IControlChannelTriggerEventDetails

Objet instancié par l’infrastructure broker en arrière-plan utilisée pour différencier les déclencheurs de canal de contrôle.

Notes

Cette interface n’est pas prise en charge sur Windows Phone.

IControlChannelTriggerResetEventDetails

Objet instancié par l’infrastructure broker en arrière-plan pour un événement ControlChannelReset pour indiquer qu’un ControlChannelTrigger a été réinitialisé.

Notes

Cette interface n’est pas prise en charge sur Windows Phone.

IWebSocket

Fournit l’accès à la communication réseau qui permet la lecture et l’écriture à l’aide d’un WebSocket.

IWebSocketControl

Fournit des données de contrôle de socket sur un objet IWebSocket .

IWebSocketControl2

Fournit des données de contrôle de socket sur un objet IWebSocket . Cette interface étend l’interface IWebSocketControl avec une propriété supplémentaire.

IWebSocketInformation

Fournit des informations de socket sur un objet IWebSocket .

IWebSocketInformation2

Fournit des informations de socket sur un objet IWebSocket . Cette interface étend IWebSocketInformation avec des propriétés supplémentaires.

Énumérations

ControlChannelTriggerResetReason

Raison pour laquelle un ControlChannelTrigger a été réinitialisé.

Notes

Cette énumération n’est pas prise en charge sur Windows Phone.

ControlChannelTriggerResourceType

Type de ressource utilisé par un déclencheur de canal de contrôle.

Notes

Cette énumération n’est pas prise en charge sur Windows Phone.

ControlChannelTriggerStatus

Spécifie si le système a pu terminer la configuration d’un objet ControlChannelTrigger pour une utilisation par les éléments de classe dans windows.Networking.Sockets et les espaces de noms associés.

Notes

Cette énumération n’est pas prise en charge sur Windows Phone.

MessageWebSocketReceiveMode

Décrit le type de message que le client acceptera.

SocketActivityConnectedStandbyAction

Indique si une application qui utilise le service de répartiteur de sockets peut recevoir des paquets lorsque le système passe en mode veille connecté.

SocketActivityKind

Décrit le type d’objet socket transféré vers ou à partir du répartiteur de sockets.

SocketActivityTriggerReason

Raison pour laquelle un SocketActivityTrigger s’est produit.

SocketErrorStatus

Spécifie les valeurs status pour une opération de socket.

SocketMessageType

Spécifie le type d’un message pour un objet MessageWebSocket .

SocketProtectionLevel

Spécifie le niveau de chiffrement à utiliser sur un objet StreamSocket .

SocketQualityOfService

Spécifie la qualité de service d’un objet DatagramSocket ou StreamSocket .

SocketSslErrorSeverity

Catégorie d’erreur qui se produit sur une connexion SSL.

Remarques

L’espace de noms Windows.Networking.Sockets fournit des classes et des interfaces pour la mise en réseau qui utilisent des sockets et des WebSockets. Voici les classes primaires.

  • DatagramSocket. Socket de datagramme UDP à utiliser pour la communication réseau.
  • StreamSocket. Socket de flux à utiliser pour la communication réseau entrante ou sortante via TCP ou via des connexions Bluetooth qui utilisent RFCOMM.
  • StreamSocketListener. Écouteur de socket de flux pour écouter les connexions réseau TCP entrantes ou les connexions Bluetooth entrantes qui utilisent RFCOMM.
  • MessageWebSocket. WebSocket basé sur un message pour lire et écrire des messages entiers pour la communication réseau. Consultez WebSockets.
  • StreamWebSocket. WebSocket basé sur un flux pour lire et écrire des flux pour les communications réseau. Consultez WebSockets.

Ces classes primaires ont également un certain nombre d’informations et de classes de contrôle associées dans l’espace de noms Windows.Networking.Sockets.

Gestion des exceptions

Vous devez écrire du code pour gérer les exceptions lorsque vous appelez des méthodes asynchrones dans l’espace de noms Windows.Networking.Sockets. Les exceptions peuvent résulter d’erreurs de validation de paramètres, d’échecs de résolution de noms et d’erreurs réseau. Des exceptions aux erreurs réseau (perte de connectivité, échecs de connexion et échecs de serveur, par exemple) peuvent se produire à tout moment. Ces erreurs donnent lieu à la levée d’exceptions. Si elle n’est pas gérée par votre application, une exception peut entraîner l’arrêt de l’ensemble de votre application par le runtime.

L’espace de noms Windows.Networking.Sockets propose des méthodes et des énumérations d’assistance pratiques qui permettent de gérer les erreurs lorsque des sockets et des WebSockets sont utilisés. Ceci peut s’avérer utile pour gérer différemment certaines exceptions réseau dans votre application. Une application peut également utiliser le HRESULT de l’exception sur les erreurs de validation de paramètre pour obtenir des informations plus détaillées sur l’erreur à l’origine de l’exception.

Pour plus d’informations sur les exceptions possibles et sur la façon de gérer les exceptions, consultez Gestion des exceptions dans les applications réseau.

Utilisation de StreamSocket avec proximité, Wi-Fi Direct et Bluetooth

Votre application peut utiliser un StreamSocket pour les connexions réseau entre les appareils qui se trouvent dans une plage proche. Les classes de l’espace de noms Windows.Networking.Proximity prennent en charge les connexions réseau avec un StreamSocket aux appareils à proximité qui utilisent Bluetooth ou Wi-Fi Direct. PeerFinder et les classes associées de l’espace de noms Windows.Networking.Proximity permettent à votre application de découvrir une autre instance de votre application sur un appareil proche. La méthode PeerFinder.FindAllPeersAsync recherche les ordinateurs homologues qui exécutent la même application dans la plage sans fil. La méthode PeerFinder.ConnectAsync renvoie un StreamSocket connecté que votre application peut utiliser pour transférer des données réseau avec l’application homologue à proximité. Pour plus d’informations, consultez Prise en charge de la proximité et de l’appui, Windows.Networking.Proximity, PeerFinder et l’exemple De proximité.

Votre application peut également utiliser un StreamSocket pour les connexions réseau entre les appareils qui utilisent Wi-Fi Direct avec des classes dans l’espace de noms Windows.Devices.WiFiDirect . La classe WiFiDirectDevice peut être utilisée pour localiser d’autres appareils qui ont un appareil Wi-Fi Direct (WFD). La méthode WiFiDirectDevice.GetDeviceSelector obtient l’identificateur d’appareil d’un appareil WFD à proximité. Une fois que vous disposez d’une référence à un appareil WFD à proximité, vous pouvez appeler la méthode WiFiDirectDevice.GetConnectionEndpointPairs pour obtenir un objet EndpointPair . La méthode ConnectAsync(EndpointPair) ou ConnectAsync(EndpointPair, SocketProtectionLevel) sur la classe StreamSocket peut ensuite être utilisée pour établir une connexion de socket. Pour plus d’informations, consultez Windows.Devices.WiFiDirect et WiFiDirectDevice.

Bluetooth utilise des ID de service Bluetooth comme points de terminaison pour les connexions StreamSocket , et non comme noms d’hôte ou adresses IP. Pour utiliser un StreamSocket avec Bluetooth, la fonctionnalité d’appareil bluetooth.rfcomm doit être définie dans le manifeste de l’application. Pour plus d’informations, consultez l’espace de noms Windows.Devices.Bluetooth.Rfcomm , Comment spécifier des fonctionnalités d’appareil pour Bluetooth et l’exemple de conversation Bluetooth Rfcomm.

Utilisation de DatagramSocket avec Wi-Fi Direct

Votre application peut utiliser un DatagramSocket pour les transferts de données réseau entre des appareils qui utilisent Wi-Fi Direct à l’aide de classes dans l’espace de noms Windows.Devices.WiFiDirect . La classe WiFiDirectDevice peut être utilisée pour localiser d’autres appareils qui ont un appareil Wi-Fi Direct (WFD). La méthode WiFiDirectDevice.GetDeviceSelector obtient l’identificateur d’appareil d’un appareil WFD à proximité. Une fois que vous disposez d’une référence à un appareil WFD à proximité, vous pouvez appeler la méthode WiFiDirectDevice.GetConnectionEndpointPairs pour obtenir un objet EndpointPair . Les méthodes de la classe DatagramSocket peuvent être utilisées pour envoyer et recevoir des données à l’objet EndpointPair . Pour plus d’informations, consultez Windows.Devices.WiFiDirect et WiFiDirectDevice.

Utilisation de déclencheurs réseau

L’espace de noms Windows.Networking.Sockets offre deux types de déclencheurs que votre application peut utiliser pour la mise en réseau en arrière-plan : ControlChannelTrigger et SocketActivityTrigger.

Déclencheurs de canal de contrôle

ControlChannelTrigger permet à votre application de recevoir des paquets de données réseau et des keepalives réseau lorsque l’application est en arrière-plan. Cela permet à votre application de fournir des notifications status et réseau en temps réel pour StreamSocket dans l’espace de noms Windows.Networking.Sockets et d’autres classes réseau dans les espaces de noms associés.

Les déclencheurs réseau sont utilisés par des applications réseau de longue durée (par exemple, une application de messagerie) pour réduire l’utilisation des ressources réseau et système. Les déclencheurs réseau permettent à une application de passer en mode basse consommation pendant des périodes de temps, en conservant les connexions réseau intactes, mais dans un état de faible consommation. Vous pouvez définir un intervalle de conservation pour indiquer au système quand l’application doit se réveiller. Vous pouvez également définir un déclencheur pour qu’il soit averti lorsqu’un paquet est reçu pour l’application. Ces fonctionnalités de notification peuvent vous aider à prolonger l’autonomie de la batterie lors de l’utilisation d’applications réseau de longue durée sur des appareils mobiles.

Pour plus d’informations, consultez la classe ControlChannelTrigger et Comment définir les options de connectivité en arrière-plan.

Déclencheurs d’activité de socket

SocketActivityTrigger permet à votre application de recevoir des paquets de données réseau lorsqu’elle n’est pas active (même si elle est suspendue ou terminée), et même quand elle n’est pas actuellement chargée en mémoire. Il est fourni en particulier pour les applications qui fournissent des services réseau, où l’application s’inscrit en tant que fournisseur de services via DNS-SD, puis devient inactive. Un SocketActivityTrigger notifie l’application lorsqu’un client se connecte au service, afin que le service puisse s’activer et fournir les services demandés. SocketActivityTrigger peut également être utilisé dans d’autres circonstances. Utilisez-la chaque fois que vous souhaitez être en mesure d’activer votre application en réponse au trafic réseau reçu.

Si votre application utilise des déclencheurs d’activité de socket, vous devez spécifier la fonctionnalité pushNotifications dans le manifeste de l’application.

Choix d’un déclencheur réseau

Il existe des cas où les deux types de déclencheurs seraient appropriés. Lorsque vous choisissez le type de déclencheur à utiliser dans votre application, tenez compte des conseils suivants.

Utilisation de sockets et webSockets sur Windows Server 2012

Sur Windows Server 2012 et Windows Server 2012 R2, le Windows.Networking.dll qui implémente la plupart des classes dans l’espace de noms Windows.Networking.Sockets ne parvient pas à se charger, sauf si la fonctionnalité Media Foundation est activée. Par conséquent, les applications qui utilisent des sockets ou des classes WebSockets dans l’espace de noms Windows.Networking.Sockets échouent si la fonctionnalité Media Foundation est désactivée. Windows Server 2012 ou Windows Server 2012 R2 s’installe avec la fonctionnalité Media Foundation désactivée.

La fonctionnalité Media Foundation peut être activée sur Windows Server 2012 ou Windows Server 2012 R2 à l’aide de Gestionnaire de serveur ou en entrant le texte suivant dans une invite de commandes ou un script :

dism /online /enable-feature /featurename:ServerMediaFoundation Une fois la fonctionnalité Media Foundation activée, l’utilisateur est invité à redémarrer. Une fois l’ordinateur redémarré, les classes pour sockets et WebSockets dans l’espace de noms Windows.Networking.Sockets fonctionnent comme prévu.

Utilisation de sockets et de WebSockets avec l’isolation réseau

L’isolation réseau dans Windows 8 vous permet de contrôler entièrement le profil de sécurité d’une application UWP.

L’isolation réseau vous permet de définir l’accès réseau nécessaire pour chaque application en choisissant les fonctionnalités appropriées. Une application sans l’ensemble des fonctionnalités appropriées ne peut pas utiliser des types de réseau spécifiques (Internet ou réseau domestique/professionnel) et des requêtes réseau spécifiques (demandes sortantes initiées par le client, ou à la fois demandes entrantes non sollicitées et demandes sortantes initiées par le client). La possibilité d’appliquer l’isolation réseau garantit que même si une application est compromise, l’application peut uniquement utiliser des fonctionnalités (types de réseau et demandes réseau, par exemple) que l’application a été accordée en tant que fonctionnalités. Cela réduit considérablement l’impact possible sur d’autres applications et sur le système d’exploitation.

Windows 8 applique activement l’isolation réseau. Un appel à une méthode ou tout accès à une propriété dans l’espace de noms Windows.Networking.Sockets (ou les espaces de noms associés qui nécessitent un accès réseau) peut échouer si la fonctionnalité réseau appropriée n’a pas été activée.

Les fonctionnalités réseau d’une application sont configurées dans le manifeste de l’application à la création de cette dernière. Les fonctionnalités réseau sont généralement ajoutées à l’aide de Visual Studio lorsque vous développez votre application. Ils peuvent également être définis manuellement dans le fichier manifeste de l’application à l’aide d’un éditeur de texte.

Pour plus d’informations sur l’isolation réseau, consultez Guide pratique pour configurer les fonctionnalités d’isolation réseau.

Voir aussi