Freigeben über


DatagramSocket.GetOutputStreamAsync Methode

Definition

Überlädt

GetOutputStreamAsync(EndpointPair)

Startet einen Vorgang, um einen IOutputStream an ein Remotenetzwerkziel abzurufen, das von einem EndpointPair-Objekt angegeben wird, das dann zum Senden von Netzwerkdaten verwendet werden kann.

GetOutputStreamAsync(HostName, String)

Startet einen Vorgang zum Abrufen eines IOutputStream zu einem Remoteziel, das durch einen Remotehostnamen und einen Remotedienstnamen angegeben wird, der dann zum Senden von Netzwerkdaten verwendet werden kann.

GetOutputStreamAsync(EndpointPair)

Startet einen Vorgang, um einen IOutputStream an ein Remotenetzwerkziel abzurufen, das von einem EndpointPair-Objekt angegeben wird, das dann zum Senden von Netzwerkdaten verwendet werden kann.

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)

Parameter

endpointPair
EndpointPair

Ein Endpunktpaar, das den lokalen Hostnamen oder die lokale IP-Adresse, den lokalen Dienstnamen oder lokalen UDP-Port, den Remotehostnamen oder die Remote-IP-Adresse und den Remotedienstnamen oder den UDP-Remoteport darstellt.

Gibt zurück

Ein IOutputStream , der den asynchronen Vorgang darstellt.

Attribute

Windows-Anforderungen

App-Funktionen
ID_CAP_NETWORKING [Windows Phone]

Hinweise

Die GetOutputStreamAsync(EndpointPair)-Methode für ein DatagramSocket wird verwendet, um einen Vorgang zu starten, um einen IOutputStream zu einem Remotenetzwerkziel abzurufen, das von einem EndpointPair-Objekt angegeben wird. Der IOutputStream kann dann verwendet werden, um Daten an das Remoteziel zu senden.

Die GetOutputStreamAsync(EndpointPair)-Methode gibt einen IOutputStream zurück, wenn sie erfolgreich abgeschlossen wird. Beim Schreiben in diesen Stream werden Datagramme an den angegebenen Remotehost- und Dienstnamen gesendet. IOutputStream sendet immer an den Remotehosthostnamen und den Remotedienstnamen, der in der ConnectAsync-Methode angegeben ist.

Die RemoteHostName-Eigenschaft der EndpointPair-Eigenschaft , die im endpunktPair-Parameter übergeben wird, kann entweder den Hostnamen oder die IP-Adresse des Remoteziels enthalten. Die RemoteServiceName-Eigenschaft des EndpointPair,das im endpunktPair-Parameter übergeben wird, kann entweder den Dienstnamen oder einen UDP-Port des Remoteziels enthalten. Wenn die RemoteHostName-Eigenschaft einen Hostnamen enthält, führt die GetOutputStreamAsync(EndpointPair)-Methode zur Namensauflösung des Remotehosthostnamens. Wenn die RemoteServiceName-Eigenschaft einen Dienstnamen enthält, führt die GetOutputStreamAsync-Methode zur Auflösung des Remotedienstnamens zu einem UDP-Port.

Die Eigenschaften RemoteHostName und RemoteServiceName müssen für das EndpointPair-Objekt bereitgestellt werden, das im endpointPair-Parameter übergeben wird. Wenn RemoteHostNameNULL oder RemoteServiceNameNULL oder eine leere Zeichenfolge ist, tritt ein Fehler auf.

Wenn das EndpointPair-Objekt , das im endpunktPair-Parameter übergeben wird, eine LocalHostName-Eigenschaft null enthält, gibt das System die lokale IP-Adresse an, die verwendet wird. Wenn das im endpointPair-Parameter übergebene EndpointPair-Objekt eine leere Zeichenfolge für die LocalServiceName-Eigenschaft enthält, gibt das System den lokalen UDP-Port an, der verwendet wird.

Es gibt zwei Möglichkeiten, ein DatagramSocket zu verwenden, um UDP-Datagramme an ein Remotenetzwerkziel zu senden:

Mit den GetOutputStreamAsync-Methoden kann eine App UDP-Datagramme mithilfe eines DatagramSocket-Objekts an mehrere Netzwerkziele senden. Jedes Mal, wenn die GetOutputStreamAsync(EndpointPair)-Methode aufgerufen wird, kann die App unterschiedliche Werte für die Member RemoteHostName und RemoteServiceName im endpunktPair-Parameter festlegen.

Um Daten von einem beliebigen Remoteendpunkt im DatagramSocket-Objekt zu empfangen, muss eine App das MessageReceived-Ereignis einem Ereignishandler zuweisen und dann entweder die BindEndpointAsync - oder bindServiceNameAsync-Methode aufrufen, um das DatagramSocket an einen lokalen Dienstnamen oder UDP-Port zu binden, bevor die GetOutputStreamAsync-Methode aufgerufen wird. Der MessageReceived-Ereignishandler muss vor jedem Bindungs- oder Verbindungsvorgang festgelegt werden, andernfalls tritt ein Fehler auf.

Die typische Reihenfolge der Vorgänge lautet wie folgt:

  1. Erstellen Sie das DatagramSocket.
  2. Verwenden Sie die Control-Eigenschaft , um ein DatagramSocketControl-Objekt abzurufen und alle erweiterten Steuerelemente festzulegen. Dieser Schritt wird normalerweise von den meisten Apps nicht benötigt.
  3. Weisen Sie das MessageReceived-Ereignis einem Ereignishandler zu.
  4. Rufen Sie die GetOutputStreamAsync(EndpointPair)-Methode auf, um den OutputStream abzurufen, um Daten an den Remoteendpunkt zu senden. Die GetOutputStreamAsync(EndpointPair)-Methode bindet das DatagramSocket auch an einen lokalen Dienstnamen oder UDP-Port und einen lokalen Hostnamen oder eine lokale IP-Adresse mithilfe des endpointPair-Parameters .
  5. Der MessageReceived-Ereignishandler wird immer dann aufgerufen, wenn eine Nachricht vom Remoteendpunkt eingeht. Die GetOutputStreamAsync-Methoden unterscheiden sich auch von den ConnectAsync-Methoden , wenn eine App die BindEndpointAsync- oder BindServiceNameAsync-Methode verwendet, um einen lokalen Dienstnamen oder UDP-Port zu binden. Mit den GetOutputStreamAsync-Methoden empfängt die App Pakete von jedem Remoteziel, das an den lokalen Dienstnamen oder UDP-Port gesendet wird. Mit den ConnectAsync-Methoden empfängt die App nur Pakete vom Remoteziel, die als Parameter an die ConnectAsync-Methoden übergeben werden.

Die BindServiceNameAsync(String, NetworkAdapter)- Methode kann verwendet werden, um einen Netzwerkadapter anzugeben, bevor die GetOutputStreamAsync(EndpointPair)-Methode aufgerufen wird. Der angegebene Adapter wird für den Bindungsvorgang verwendet. Wenn nach dem Aufrufen von BindServiceNameAsync(String, NetworkAdapter) und dem an GetOutputStreamAsync(EndpointPair) übergebenen endpointPair-Parameter ein LocalHostName angegeben wird, schlägt die GetOutputStreamAsync(EndpointPair)-Methode fehl.

Weitere Informationen

Gilt für:

GetOutputStreamAsync(HostName, String)

Startet einen Vorgang zum Abrufen eines IOutputStream zu einem Remoteziel, das durch einen Remotehostnamen und einen Remotedienstnamen angegeben wird, der dann zum Senden von Netzwerkdaten verwendet werden kann.

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)

Parameter

remoteHostName
HostName

Der Remotehostname oder die Remote-IP-Adresse.

remoteServiceName
String

Platform::String

winrt::hstring

Der Remotedienstname oder der UDP-Remoteport.

Gibt zurück

Ein IOutputStream , der den asynchronen Vorgang darstellt.

Attribute

Windows-Anforderungen

App-Funktionen
ID_CAP_NETWORKING [Windows Phone]

Hinweise

Die [GetOutputStreamAsync(HostName, String)-Methode für ein DatagramSocket wird verwendet, um einen Vorgang zu starten, um einen IOutputStream zu einem Remotenetzwerkziel abzurufen, das durch einen Remotehosthostnamen und einen Remotedienstnamen angegeben wird. Der IOutputStream kann dann verwendet werden, um Daten an das Remoteziel zu senden.

Die [GetOutputStreamAsync(HostName, String)-Methode gibt einen IOutputStream zurück, wenn sie erfolgreich abgeschlossen wird. Beim Schreiben in diesen Stream werden Datagramme an den angegebenen Remotehost- und Dienstnamen gesendet. IOutputStream sendet immer an den Remotehosthostnamen und den Remotedienstnamen, der in der ConnectAsync-Methode angegeben ist.

Der remoteHostName-Parameter kann entweder den Hostnamen oder die IP-Adresse des Remoteziels enthalten. Der remoteServiceName-Parameter kann entweder den Dienstnamen oder einen UDP-Port des Remoteziels enthalten. Wenn der remoteHostName-Parameter einen Hostnamen enthält, führt die [GetOutputStreamAsync(HostName, String)-Methode zur Namensauflösung des Remotehosthostnamens. Wenn der remoteServiceName-Parameter einen Dienstnamen enthält, führt die [GetOutputStreamAsync(HostName, String)-Methode zur Auflösung des Remotedienstnamens zu einem UDP-Port.

Die Parameter remoteHostName und remoteServiceName müssen angegeben werden. Wenn der remoteHostName-Parameter NULL oder der remoteServiceName-Parameter NULL oder eine leere Zeichenfolge ist, tritt ein Fehler auf.

Es gibt zwei Möglichkeiten, ein DatagramSocket zu verwenden, um UDP-Datagramme an ein Remotenetzwerkziel zu senden:

Mit den GetOutputStreamAsync-Methoden kann eine App UDP-Datagramme mithilfe eines DatagramSocket-Objekts an mehrere Netzwerkziele senden. Jedes Mal, wenn die [GetOutputStreamAsync(HostName, String)-Methode aufgerufen wird, kann die App unterschiedliche Werte für die Parameter remoteHostName und remoteServiceName festlegen.

Mit den ConnectAsync-Methoden kann eine App UDP-Datagramme mithilfe eines DatagramSocket-Objekts an ein einzelnes Netzwerkziel senden.

Um Daten von einem beliebigen Remoteendpunkt im DatagramSocket-Objekt zu empfangen, muss eine App das MessageReceived-Ereignis einem Ereignishandler zuweisen und dann entweder die BindEndpointAsync - oder bindServiceNameAsync-Methode aufrufen, um das DatagramSocket an einen lokalen Dienstnamen oder UDP-Port zu binden, bevor die GetOutputStreamAsync-Methode aufgerufen wird. Der MessageReceived-Ereignishandler muss vor jedem Bindungs- oder Verbindungsvorgang festgelegt werden, andernfalls tritt ein Fehler auf.

Die typische Reihenfolge der Vorgänge lautet wie folgt:

  1. Erstellen Sie das DatagramSocket.
  2. Verwenden Sie die Control-Eigenschaft , um ein DatagramSocketControl-Objekt abzurufen und alle erweiterten Steuerelemente festzulegen. Dieser Schritt wird normalerweise von den meisten Apps nicht benötigt.
  3. Weisen Sie das MessageReceived-Ereignis einem Ereignishandler zu.
  4. Binden Sie das DatagramSocket an einen lokalen Dienstnamen oder UDP-Port.
  5. Der MessageReceived-Ereignishandler wird immer dann aufgerufen, wenn eine Nachricht vom Remoteendpunkt eingeht.
  6. Rufen Sie die GetOutputStreamAsync-Methode auf, um den OutputStream abzurufen, um Daten an den Remoteendpunkt zu senden. Sie können die in datagramSocketMessageReceivedEventArgs enthaltenen Informationen aus dem MessageReceived-Ereignishandler verwenden, um einen OutputStream mit dem Remoteendpunkt einzurichten, der eine bestimmte eingehende Nachricht erstellt hat. Die GetOutputStreamAsync-Methoden unterscheiden sich auch von der ConnectAsync-Methode , wenn eine App die BindEndpointAsync- oder BindServiceNameAsync-Methode verwendet, um an einen lokalen Dienstnamen oder UDP-Port zu binden. Mit den GetOutputStreamAsync-Methoden empfängt die App Pakete von jedem Remoteziel, das an den lokalen Dienstnamen oder UDP-Port gesendet wird. Mit den ConnectAsync-Methoden empfängt die App nur Pakete vom Remoteziel, die als Parameter an die ConnectAsync-Methoden übergeben werden.

Weitere Informationen

Gilt für: