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
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:
- Verwenden Sie eine der GetOutputStreamAsync-Methoden .
- Nach einem erfolgreichen Aufruf einer der ConnectAsync-Methoden übergeben Sie 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 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:
- 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 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:
- Verwenden Sie eine der GetOutputStreamAsync-Methoden.
- Nach einem erfolgreichen Aufruf einer der ConnectAsync-Methoden übergeben Sie 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 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:
- 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 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.