StreamSocketListener Classe
Définition
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.
Prend en charge l’écoute d’une connexion réseau entrante à l’aide d’un socket de flux TCP ou d’un RFCOMM Bluetooth.
public ref class StreamSocketListener sealed : IClosable
/// [Windows.Foundation.Metadata.Activatable(65536, Windows.Foundation.UniversalApiContract)]
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.UniversalApiContract, 65536)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
/// [Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
class StreamSocketListener final : IClosable
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.UniversalApiContract, 65536)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
/// [Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
/// [Windows.Foundation.Metadata.Activatable(65536, "Windows.Foundation.UniversalApiContract")]
class StreamSocketListener final : IClosable
[Windows.Foundation.Metadata.Activatable(65536, typeof(Windows.Foundation.UniversalApiContract))]
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.UniversalApiContract), 65536)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
[Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
public sealed class StreamSocketListener : System.IDisposable
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.UniversalApiContract), 65536)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
[Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
[Windows.Foundation.Metadata.Activatable(65536, "Windows.Foundation.UniversalApiContract")]
public sealed class StreamSocketListener : System.IDisposable
function StreamSocketListener()
Public NotInheritable Class StreamSocketListener
Implements IDisposable
- Héritage
- Attributs
- Implémente
Configuration requise pour Windows
| Configuration requise | Description |
|---|---|
| Famille d’appareils |
Windows 10 (introduit dans 10.0.10240.0)
|
| API contract |
Windows.Foundation.UniversalApiContract (introduit dans v1.0)
|
| Fonctionnalités de l’application |
bluetooth.rfcomm
internetClientServer
privateNetworkClientServer
|
Remarques
La classe StreamSocketListener prend en charge l’écoute d’une connexion réseau entrante à l’aide d’un socket de flux et l’acceptation de la connexion.
L’ordre classique des opérations est le suivant :
- Créez StreamSocketListener.
- Utilisez la propriété Control pour récupérer un objet StreamSocketListenerControl et définir la qualité de service du socket requise.
- Affectez l’événement ConnectionReceived à un gestionnaire d’événements.
- Appelez la méthode BindServiceNameAsync ou BindEndpointAsync pour établir une liaison à un numéro de port TCP local ou un nom de service. Pour Bluetooth RFCOMM, le paramètre de nom de service local est l’ID de service Bluetooth.
- Lorsqu’une connexion est reçue, utilisez l’objet StreamSocketListenerConnectionReceivedEventArgs pour récupérer la propriété Socket avec l’objet StreamSocket créé.
- Utilisez l’objet StreamSocket pour envoyer et recevoir des données.
- Appelez la méthode Close pour arrêter l’écoute et accepter les connexions réseau entrantes et libérer toutes les ressources non managées associées à l’objet StreamSocketListener. Tous les objets StreamSocket créés lorsqu’une connexion est reçue ne sont pas affectés et peuvent continuer à être utilisés si nécessaire.
L’énumération SocketProtectionLevel permet à un serveur de contrôler la négociation de protocole avec les clients lors de l’utilisation de l’objet StreamSocketListener pour écouter et lier des sockets via Bluetooth. Lorsque l’objet StreamSocketListener est utilisé via Bluetooth, les valeurs SocketProtectionLevel prises en charge sont PlainSocket, BluetoothEncryptionAllowNullAuthentication ou BluetoothEncryptionWithAuthentication. Lorsque l’objet StreamSocketListener est utilisé pour écouter et lier des sockets sans utiliser Bluetooth, la seule valeur SocketProtectionLevel prise en charge est PlainSocket.
Pour utiliser StreamSocketListener avec Bluetooth, la fonctionnalité d’appareil bluetooth.rfcomm doit être définie dans le manifeste de l’application. Pour plus d’informations, consultez Comment spécifier des fonctionnalités d’appareil pour Bluetooth.
Gestion des exceptions
Vous devez écrire du code pour gérer les exceptions lorsque vous appelez des méthodes asynchrones sur la classe StreamSocketListener. Les exceptions peuvent provenir d’erreurs de validation de paramètre, d’échecs de résolution de noms et d’erreurs réseau. Les exceptions des erreurs réseau (perte de connectivité, défaillances de connexion et défaillances de serveur, par exemple) peuvent se produire à tout moment. Ces erreurs entraînent 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.
Le Windows. L’espace de noms Networking.Sockets a des fonctionnalités qui simplifient la gestion des erreurs lors de l’utilisation de sockets. La méthode GetStatus sur la classe SocketError peut convertir HRESULT d’une exception en valeur d’énumération SocketErrorStatus . Cela peut être utile pour gérer des exceptions réseau spécifiques différemment dans votre application. Une application peut également utiliser HRESULT à partir de l’exception sur les erreurs de validation de paramètre pour en savoir plus sur l’erreur qui a provoqué l’exception.
Pour plus d’informations sur les exceptions possibles et sur la gestion des exceptions, consultez Gestion des exceptions dans les applications réseau.
Utilisation de StreamSocketListener avec Bluetooth
Votre application peut utiliser StreamSocketListener pour écouter les connexions réseau via Bluetooth RFCOMM. Les connexions réseau via Bluetooth utilisent un ID de service Bluetooth comme point de terminaison pour les connexions, et non un port IP ou un nom de service. Pour écouter Bluetooth, votre application appelle l’une des méthodes BindServiceNameAsync sur StreamSocketListener avec le paramètre localServiceName défini sur un ID de service Bluetooth.
Pour utiliser StreamSocketListener et StreamSocket avec Bluetooth, la fonctionnalité d’appareil bluetooth.rfcomm doit être définie dans le manifeste de l’application. Pour plus d’informations, consultez la Windows. Espace de noms Devices.Bluetooth.Rfcomm, comment spécifier les fonctionnalités d’appareil pour Bluetooth et l’exemple de conversation Rfcomm Bluetooth.
Utilisation de StreamSocketListener 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 le Windows. L’espace de noms Networking.Sockets ne peut pas être chargé, sauf si la fonctionnalité Media Foundation est activée. Par conséquent, les applications qui utilisent StreamSocketListener et les classes de socket associées dans le Windows. L’espace de noms Networking.Sockets échoue si la fonctionnalité Media Foundation est désactivée. Windows Server 2012 ou Windows Server 2012 R2 est installé 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é, classes pour les sockets et webSockets dans le Windows. L’espace de noms Networking.Sockets fonctionne comme prévu.
Constructeurs
| Nom | Description |
|---|---|
| StreamSocketListener() |
Crée un objet StreamSocketListener . |
Propriétés
| Nom | Description |
|---|---|
| Control |
Obtient les données de contrôle de socket sur un objet StreamSocketListener . |
| Information |
Obtient des informations de socket pour l’objet StreamSocketListener . |
Méthodes
| Nom | Description |
|---|---|
| BindEndpointAsync(HostName, String) |
Démarre une opération de liaison sur un StreamSocketListener à un nom d’hôte local et un nom de service local. |
| BindServiceNameAsync(String, SocketProtectionLevel, NetworkAdapter) |
Démarre une opération de liaison de socket sur un StreamSocketListener vers un nom de service local sur une carte réseau spécifiée avec un SocketProtectionLevel spécifié pour définir sur tous les sockets liés. |
| BindServiceNameAsync(String, SocketProtectionLevel) |
Démarre une opération de liaison sur un StreamSocketListener à un nom de service local avec un SocketProtectionLevel spécifié pour définir sur tous les sockets liés. |
| BindServiceNameAsync(String) |
Démarre une opération de liaison sur un StreamSocketListener à un nom de service local. |
| CancelIOAsync() |
Annule les lectures et les écritures en attente sur un objet StreamSocketListener . |
| Close() |
Ferme l’objet StreamSocketListener . |
| Dispose() |
Effectue des tâches définies par l’application associées à la libération, à la libération ou à la réinitialisation des ressources non managées. |
| EnableTransferOwnership(Guid, SocketActivityConnectedStandbyAction) |
Permet à la tâche en arrière-plan de votre application d’être déclenchée par le répartiteur de socket lorsque le trafic de ce StreamSocketListener arrive pendant que le système est connecté en veille. |
| EnableTransferOwnership(Guid) |
Permet à la tâche en arrière-plan de votre application d’être déclenchée par le répartiteur de socket lorsque le trafic de ce StreamSocketListener arrive pendant que l’application n’est pas active. |
| TransferOwnership(String, SocketActivityContext) |
Transfère la propriété de StreamSocketListener au service de répartiteur de sockets, qui surveille l’activité de socket et avertit l’application via une tâche en arrière-plan s’il existe une activité. |
| TransferOwnership(String) |
Transfère la propriété de StreamSocketListener au service de répartiteur de sockets, qui surveille l’activité de socket et avertit l’application via une tâche en arrière-plan s’il existe une activité. |
Événements
| Nom | Description |
|---|---|
| ConnectionReceived |
Événement qui indique qu’une connexion a été reçue sur l’objet StreamSocketListener . |
S’applique à
Voir aussi
- IClosable
- SocketError
- SocketErrorStatus
- StreamSocket
- StreamSocketListenerConnectionReceivedEventArgs
- StreamSocketListenerControl
- StreamSocketListenerInformation
- Connexion avec des sockets
- Gestion des exceptions dans les applications réseau
- Comment se connecter avec un socket de flux
- Comment se connecter avec un socket de flux
- Comment spécifier des fonctionnalités d’appareil pour Bluetooth
- Comment utiliser des contrôles de socket avancés
- Résoudre les problèmes et déboguer les connexions réseau
- Exemple de conversation Rfcomm Bluetooth
- Exemple StreamSocket ControlChannelTrigger
- Exemple de proximité
- Exemple de StreamSocket