Windows.Networking.Sockets Espace de noms
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
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.
- Si vous utilisez IXMLHTTPRequest2, System.Net.Http.HttpClient ou System.Net.Http.HttpClientHandler, vous devez opter pour ControlChannelTrigger.
- Si vous utilisez des StreamSockets avec push, préférez SocketActivityTrigger. Il permet au système de libérer de la mémoire et de réduire les besoins en alimentation lorsque la connexion n’est pas activement utilisée.
- Si vous souhaitez réduire l’empreinte mémoire de votre application lorsqu’elle ne traite pas activement les requêtes réseau, préférez SocketActivityTrigger.
- Si vous souhaitez que votre application puisse recevoir des données quand le système est en mode de veille connectée, utilisez SocketActivityTrigger.
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
- PeerFinder
- WiFiDirectDevice
- Windows.Devices.Bluetooth.Rfcomm
- Windows.Devices.WiFiDirect
- Windows.Networking
- Windows.Networking.Connectivity
- Windows.Networking.Proximity
- Ajout de la prise en charge de la mise en réseau
- Connexion avec des sockets
- WebSockets
- Gestion des exceptions dans les applications réseau
- Comment configurer les fonctionnalités d’isolement réseau
- Comment définir les options de connectivité en arrière-plan
- Guide pratique pour spécifier les capacités d’un appareil pour Bluetooth
- Prise en charge de la proximité et de l’appui
- Résolution des problèmes et débogage des connexions réseau
- SetSocketMediaStreamingMode
- Exemple de conversation Bluetooth Rfcomm
- Exemple DatagramSocket
- Exemple ControlChannelTrigger StreamWebSocket
- Exemple de socket TCP ControlChannelTrigger
- Exemple de proximité
- Exemple StreamSocket
- Exemple DatagramSocket
- Exemple de WebSocket
- Exemple StreamSocket
- exemple de Wi-Fi Direct
- exemple de services Wi-Fi Direct (Windows 10)
- Exemple de socket de flux de déclencheur d’activité de socket