DatagramSocket.GetOutputStreamAsync Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Überlädt
| Name | Beschreibung |
|---|---|
| GetOutputStreamAsync(EndpointPair) |
Startet einen Vorgang, um einen IOutputStream auf 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, um einen IOutputStream auf ein Remoteziel abzurufen, 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 auf 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 den lokalen UDP-Port, den Remotehostnamen oder die Remote-IP-Adresse sowie den Namen des Remotediensts oder den Remote-UDP-Port darstellt.
Gibt zurück
Ein IOutputStream , der den asynchronen Vorgang darstellt.
- Attribute
Hinweise
Die GetOutputStreamAsync(EndpointPair)-Methode für ein DatagramSocket wird verwendet, um einen Vorgang zu starten, um einen IOutputStream auf ein 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 er erfolgreich abgeschlossen wird. Das Schreiben in diesen Datenstrom sendet Datagramme an den angegebenen Remotehost- und Dienstnamen. IOutputStream sendet immer an den Remotehostnamen und den Remotedienstnamen, der in der ConnectAsync-Methode angegeben ist.
Die RemoteHostName-Eigenschaft des im EndpointPair-Parameter übergebenen EndpointPair-Parameters kann entweder den Hostnamen oder die IP-Adresse des Remoteziels enthalten. Die RemoteServiceName-Eigenschaft des im endpointPair-Parameter übergebenen EndpointPair-Parameters 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 Remotehostnamens. 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 Parameter "endpointPair " übergeben wird. Wenn "RemoteHostName"null ist oder "RemoteServiceName " null oder eine leere Zeichenfolge ist, tritt ein Fehler auf.
Wenn das im EndpointPair-Parameter übergebene EndpointPair-Objekt eine null LocalHostName-Eigenschaft 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 zum Senden von UDP-Datagrammen an ein Remotenetzwerkziel zu verwenden:
- Verwenden Sie eine der GetOutputStreamAsync-Methoden .
- Übergeben Sie nach einem erfolgreichen Aufruf einer der ConnectAsync-Methoden die OutputStream-Eigenschaft an ein DataWriter-Objekt und verwenden Sie Methoden für das DataWriter-Objekt , um Daten 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 Elemente "RemoteHostName" und "RemoteServiceName " im Parameter "endpointPair " festlegen.
Um Daten von einem beliebigen Remoteendpunkt im DatagramSocket-Objekt zu empfangen, muss eine App das MessageReceived-Ereignis einem Ereignishandler zuweisen und dann entweder 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 einem Bindungs- oder Verbindungsvorgang festgelegt werden, andernfalls tritt ein Fehler auf.
Die typische Reihenfolge der Vorgänge lautet wie folgt:
- Erstellen Sie das DatagramSocket.
- 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.
- Weisen Sie das MessageReceived-Ereignis einem Ereignishandler zu.
- 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 .
- 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 Methode BindEndpointAsync oder BindServiceNameAsync 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, das als Parameter an die ConnectAsync-Methoden übergeben wird.
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 der an GetOutputStreamAsync(EndpointPair) übergebene EndpointPair-Parameter einen LocalHostName angibt, schlägt die GetOutputStreamAsync(EndpointPair)-Methode fehl.
Siehe auch
Gilt für:
GetOutputStreamAsync(HostName, String)
Startet einen Vorgang, um einen IOutputStream auf ein Remoteziel abzurufen, 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 Name des Remotediensts oder der Udp-Remoteport.
Gibt zurück
Ein IOutputStream , der den asynchronen Vorgang darstellt.
- Attribute
Hinweise
Die [GetOutputStreamAsync(HostName, String)-Methode für ein DatagramSocket wird verwendet, um einen Vorgang zu starten, um einen IOutputStream auf ein Remotenetzwerkziel abzurufen, das durch einen Remotehostnamen 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 er erfolgreich abgeschlossen wird. Das Schreiben in diesen Datenstrom sendet Datagramme an den angegebenen Remotehost- und Dienstnamen. IOutputStream sendet immer an den Remotehostnamen und den Remotedienstnamen, der in der ConnectAsync-Methode angegeben ist.
Der Parameter "remoteHostName " kann entweder den Hostnamen oder die IP-Adresse des Remoteziels enthalten. Der parameter remoteServiceName kann entweder den Dienstnamen oder einen UDP-Port des Remoteziels enthalten. Wenn der Parameter "remoteHostName " einen Hostnamen enthält, führt die [GetOutputStreamAsync(HostName, String)-Methode zur Namensauflösung des Remotehostnamens. Wenn der Parameter "remoteServiceName " 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 Parameter "remoteHostName " null ist oder der Parameter "remoteServiceName " null oder eine leere Zeichenfolge ist, tritt ein Fehler auf.
Es gibt zwei Möglichkeiten, ein DatagramSocket zum Senden von UDP-Datagrammen an ein Remotenetzwerkziel zu verwenden:
- Verwenden Sie eine der GetOutputStreamAsync-Methoden.
- Übergeben Sie nach einem erfolgreichen Aufruf einer der ConnectAsync-Methoden die OutputStream-Eigenschaft an ein DataWriter-Objekt und verwenden Sie Methoden für das DataWriter-Objekt , um Daten 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 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 einem Bindungs- oder Verbindungsvorgang festgelegt werden, andernfalls tritt ein Fehler auf.
Die typische Reihenfolge der Vorgänge lautet wie folgt:
- Erstellen Sie das DatagramSocket.
- 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.
- Weisen Sie das MessageReceived-Ereignis einem Ereignishandler zu.
- Binden Sie das DatagramSocket an einen lokalen Dienstnamen oder UDP-Port.
- Der MessageReceived-Ereignishandler wird immer dann aufgerufen, wenn eine Nachricht vom Remoteendpunkt eingeht.
- Rufen Sie die GetOutputStreamAsync-Methode auf, um den OutputStream abzurufen, um Daten an den Remoteendpunkt zu senden. Sie können die informationen verwenden, die im DatagramSocketMessageReceivedEventArgs aus dem MessageReceived-Ereignishandler enthalten sind, um einen OutputStream mit dem Remoteendpunkt herzustellen, der eine bestimmte eingehende Nachricht erstellt hat. Die GetOutputStreamAsync-Methoden unterscheiden sich auch von der ConnectAsync-Methode , wenn eine App die Methode BindEndpointAsync oder BindServiceNameAsync verwendet, um eine Bindung an einen lokalen Dienstnamen oder UDP-Port herzustellen. 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, das als Parameter an die ConnectAsync-Methoden übergeben wird.