Langue

DatagramSocket.GetOutputStreamAsync Méthode

Définition

Surcharges

Nom Description
GetOutputStreamAsync(EndpointPair)

Démarre une opération pour obtenir un IOutputStream vers une destination réseau distante spécifiée par un objet EndpointPair qui peut ensuite être utilisé pour envoyer des données réseau.

GetOutputStreamAsync(HostName, String)

Démarre une opération pour obtenir un IOutputStream vers une destination distante spécifiée par un nom d’hôte distant et un nom de service distant qui peut ensuite être utilisé pour envoyer des données réseau.

GetOutputStreamAsync(EndpointPair)

Démarre une opération pour obtenir un IOutputStream vers une destination réseau distante spécifiée par un objet EndpointPair qui peut ensuite être utilisé pour envoyer des données réseau.

public:
 virtual IAsyncOperation<IOutputStream ^> ^ GetOutputStreamAsync(EndpointPair ^ endpointPair) = GetOutputStreamAsync;
/// [Windows.Foundation.Metadata.Overload("GetOutputStreamWithEndpointPairAsync")]
/// [Windows.Foundation.Metadata.RemoteAsync]
IAsyncOperation<IOutputStream> GetOutputStreamAsync(EndpointPair const& endpointPair);
[Windows.Foundation.Metadata.Overload("GetOutputStreamWithEndpointPairAsync")]
[Windows.Foundation.Metadata.RemoteAsync]
public IAsyncOperation<IOutputStream> GetOutputStreamAsync(EndpointPair endpointPair);
function getOutputStreamAsync(endpointPair)
Public Function GetOutputStreamAsync (endpointPair As EndpointPair) As IAsyncOperation(Of IOutputStream)

Paramètres

endpointPair
EndpointPair

Paire de points de terminaison qui représente le nom d’hôte local ou l’adresse IP locale, le nom du service local ou le port UDP local, le nom d’hôte distant ou l’adresse IP distante, ainsi que le nom de service distant ou le port UDP distant.

Retours

IOutputStream qui représente l’opération asynchrone.

Attributs

Remarques

La méthode GetOutputStreamAsync(EndpointPair) sur un DatagramSocket est utilisée pour démarrer une opération pour obtenir un IOutputStream vers une destination réseau distante spécifiée par un objet EndpointPair . L’IOutputStream peut ensuite être utilisé pour envoyer des données à la destination distante.

La méthode GetOutputStreamAsync(EndpointPair) retourne un IOutputStream lorsqu’elle se termine correctement. L’écriture dans ce flux envoie des datagrammes au nom de service et d’hôte distant spécifié. IOutputStream envoie toujours le nom d’hôte distant et le nom de service distant spécifiés dans la méthode ConnectAsync.

La propriété RemoteHostName du EndpointPair passée dans le paramètre endpointPair peut contenir le nom d’hôte ou l’adresse IP de la destination distante. La propriété RemoteServiceName du endpointPair passée dans le paramètre endpointPair peut contenir le nom du service ou un port UDP de la destination distante. Si la propriété RemoteHostName contient un nom d’hôte, la méthode GetOutputStreamAsync(EndpointPair) entraîne la résolution de noms du nom d’hôte distant. Si la propriété RemoteServiceName contient un nom de service, la méthode GetOutputStreamAsync entraîne la résolution du nom du service distant sur un port UDP.

Les propriétés RemoteHostName et RemoteServiceName doivent être fournies sur l’objet EndpointPair transmis dans le paramètre endpointPair . Si RemoteHostName a la valeur Null ou si RemoteServiceName a la valeur Null ou une chaîne vide, une erreur se produit.

Si l’objet EndpointPair transmis dans le paramètre endpointPair contient une propriété LocalHostName null, le système fournit l’adresse IP locale qui sera utilisée. Si l’objet EndpointPair transmis dans le paramètre endpointPair contient une chaîne vide pour la propriété LocalServiceName , le système fournit le port UDP local qui sera utilisé.

Il existe deux façons d’utiliser un DatagramSocket pour envoyer des datagrammes UDP à une destination réseau distante :

Les méthodes GetOutputStreamAsync permettent à une application d’envoyer des datagrammes UDP à l’aide d’un objet DatagramSocket à plusieurs destinations réseau. Chaque fois que la méthode GetOutputStreamAsync(EndpointPair) est appelée, l’application peut définir des valeurs différentes pour les membres RemoteHostName et RemoteServiceName dans le paramètre endpointPair .

Pour recevoir des données d’un point de terminaison distant sur l’objet DatagramSocket , une application doit affecter l’événement MessageReceived à un gestionnaire d’événements, puis appeler la méthode BindEndpointAsync ou BindServiceNameAsync pour lier datagramSocket à un nom de service local ou un port UDP avant d’appeler la méthode GetOutputStreamAsync. Le gestionnaire d’événements MessageReceived doit être défini avant toute opération de liaison ou de connexion, sinon une erreur se produit.

L’ordre classique des opérations est le suivant :

  1. Créez l’objet DatagramSocket.
  2. Utilisez la propriété Control pour récupérer un objet DatagramSocketControl et définir les contrôles avancés. Cette étape n’est pas normalement nécessaire par la plupart des applications.
  3. Affectez l’événement MessageReceived à un gestionnaire d’événements.
  4. Appelez la méthode GetOutputStreamAsync(EndpointPair) pour obtenir OutputStream pour envoyer des données au point de terminaison distant. La méthode GetOutputStreamAsync(EndpointPair) lie également datagramSocket à un nom de service local ou un port UDP et un nom d’hôte local ou une adresse IP à l’aide du paramètre endpointPair .
  5. Le gestionnaire d’événements MessageReceived est appelé chaque fois qu’un message du point de terminaison distant arrive. Les méthodes GetOutputStreamAsync diffèrent également des méthodes ConnectAsync lorsqu’une application utilise la méthode BindEndpointAsync ou BindServiceNameAsync pour lier un nom de service local ou un port UDP. Avec les méthodes GetOutputStreamAsync , l’application reçoit les paquets de toute destination distante envoyée au nom du service local ou au port UDP. Avec les méthodes ConnectAsync , l’application reçoit uniquement les paquets de la destination distante passée en tant que paramètres aux méthodes ConnectAsync .

La méthode BindServiceNameAsync(String, NetworkAdapter) peut être utilisée pour spécifier une carte réseau avant d’appeler la méthode GetOutputStreamAsync(EndpointPair). L’adaptateur spécifié est utilisé pour l’opération de liaison. Si après avoir appelé BindServiceNameAsync(String, NetworkAdapter) et le paramètre endpointPair transmis à GetOutputStreamAsync(EndpointPair) spécifie un LocalHostName, la méthode GetOutputStreamAsync(EndpointPair) échoue.

Voir aussi

S’applique à

GetOutputStreamAsync(HostName, String)

Démarre une opération pour obtenir un IOutputStream vers une destination distante spécifiée par un nom d’hôte distant et un nom de service distant qui peut ensuite être utilisé pour envoyer des données réseau.

public:
 virtual IAsyncOperation<IOutputStream ^> ^ GetOutputStreamAsync(HostName ^ remoteHostName, Platform::String ^ remoteServiceName) = GetOutputStreamAsync;
/// [Windows.Foundation.Metadata.Overload("GetOutputStreamAsync")]
/// [Windows.Foundation.Metadata.RemoteAsync]
IAsyncOperation<IOutputStream> GetOutputStreamAsync(HostName const& remoteHostName, winrt::hstring const& remoteServiceName);
[Windows.Foundation.Metadata.Overload("GetOutputStreamAsync")]
[Windows.Foundation.Metadata.RemoteAsync]
public IAsyncOperation<IOutputStream> GetOutputStreamAsync(HostName remoteHostName, string remoteServiceName);
function getOutputStreamAsync(remoteHostName, remoteServiceName)
Public Function GetOutputStreamAsync (remoteHostName As HostName, remoteServiceName As String) As IAsyncOperation(Of IOutputStream)

Paramètres

remoteHostName
HostName

Nom d’hôte distant ou adresse IP distante.

remoteServiceName
String

Platform::String

winrt::hstring

Nom du service distant ou port UDP distant.

Retours

IOutputStream représentant l’opération asynchrone.

Attributs

Remarques

La méthode [GetOutputStreamAsync(HostName, String) sur un DatagramSocket est utilisée pour démarrer une opération pour obtenir un IOutputStream vers une destination réseau distante spécifiée par un nom d’hôte distant et un nom de service distant. L’IOutputStream peut ensuite être utilisé pour envoyer des données à la destination distante.

La méthode [GetOutputStreamAsync(HostName, String) retourne un IOutputStream lorsqu’elle se termine correctement. L’écriture dans ce flux envoie des datagrammes au nom de service et d’hôte distant spécifié. IOutputStream envoie toujours le nom d’hôte distant et le nom de service distant spécifiés dans la méthode ConnectAsync.

Le paramètre remoteHostName peut contenir le nom d’hôte ou l’adresse IP de la destination distante. Le paramètre remoteServiceName peut contenir le nom du service ou un port UDP de la destination distante. Si le paramètre remoteHostName contient un nom d’hôte, la méthode [GetOutputStreamAsync(HostName, String) entraîne la résolution de noms du nom d’hôte distant. Si le paramètre remoteServiceName contient un nom de service, la méthode [GetOutputStreamAsync(HostName, String) entraîne la résolution du nom du service distant sur un port UDP.

Les paramètres remoteHostName et remoteServiceName doivent être fournis. Si le paramètre remoteHostName a la valeur Null ou si le paramètre remoteServiceName a la valeur Null ou une chaîne vide, une erreur se produit.

Il existe deux façons d’utiliser un DatagramSocket pour envoyer des datagrammes UDP à une destination réseau distante :

  • Utilisez l’une des méthodes GetOutputStreamAsync.
  • Après un appel réussi à l’une des méthodes ConnectAsync , transmettez la propriété OutputStream à un objet DataWriter et utilisez des méthodes sur l’objet DataWriter pour envoyer des données.

Les méthodes GetOutputStreamAsync permettent à une application d’envoyer des datagrammes UDP à l’aide d’un objet DatagramSocket à plusieurs destinations réseau. Chaque fois que la méthode [GetOutputStreamAsync(HostName, String) est appelée, l’application peut définir des valeurs différentes pour les paramètres remoteHostName et remoteServiceName .

Les méthodes ConnectAsync permettent à une application d’envoyer des datagrammes UDP à l’aide d’un objet DatagramSocket à une destination réseau unique.

Pour recevoir des données d’un point de terminaison distant sur l’objet DatagramSocket , une application doit affecter l’événement MessageReceived à un gestionnaire d’événements, puis appeler la méthode BindEndpointAsync ou BindServiceNameAsync pour lier datagramSocket à un nom de service local ou un port UDP avant d’appeler la méthode GetOutputStreamAsync. Le gestionnaire d’événements MessageReceived doit être défini avant toute opération de liaison ou de connexion, sinon une erreur se produit.

L’ordre classique des opérations est le suivant :

  1. Créez l’objet DatagramSocket.
  2. Utilisez la propriété Control pour récupérer un objet DatagramSocketControl et définir les contrôles avancés. Cette étape n’est pas normalement nécessaire par la plupart des applications.
  3. Affectez l’événement MessageReceived à un gestionnaire d’événements.
  4. Liez datagramSocket à un nom de service local ou un port UDP.
  5. Le gestionnaire d’événements MessageReceived est appelé chaque fois qu’un message du point de terminaison distant arrive.
  6. Appelez la méthode GetOutputStreamAsync pour obtenir OutputStream pour envoyer des données au point de terminaison distant. Vous pouvez utiliser les informations contenues dans datagramSocketMessageReceivedEventArgs du gestionnaire d’événements MessageReceived pour établir un OutputStream avec le point de terminaison distant qui a créé un message entrant spécifique. Les méthodes GetOutputStreamAsync diffèrent également de la méthode ConnectAsync lorsqu’une application utilise la méthode BindEndpointAsync ou BindServiceNameAsync pour établir une liaison à un nom de service local ou un port UDP. Avec les méthodes GetOutputStreamAsync, l’application reçoit les paquets de toute destination distante envoyée au nom du service local ou au port UDP. Avec les méthodes ConnectAsync , l’application reçoit uniquement les paquets de la destination distante passée en tant que paramètres aux méthodes ConnectAsync .

Voir aussi

S’applique à