DatagramSocket-Klasse

DatagramSocket Class

Unterstützt Netzwerkkommunikation mit einem UDP-Datagrammsocket.

Syntax


var datagramSocket = new Windows.Networking.Sockets.DatagramSocket();

Attribute

[DualApiPartition()]
[MarshalingBehavior(Agile)]
[Threading(Both)]
[Version(0x06020000)]

Member

DatagramSocketKlasse hat diese Membertypen:

Konstruktoren

DatagramSocketKlasse hat diese Konstruktoren.

KonstruktorBeschreibung
DatagramSocket Creates a new DatagramSocket object.

 

Ereignisse

DatagramSocketKlasse hat diese Ereignisse.

EreignisBeschreibung
MessageReceived An event that indicates that a message was received on the DatagramSocket object.

 

Methoden

The DatagramSocket Klasse hat diese Methoden. Mit C#, Visual Basic und C++ erbt es auch Methoden aus Object Klasse.

MethodeBeschreibung
BindEndpointAsync Starts a bind operation on a DatagramSocket to a local hostname and a local service name.
BindServiceNameAsync(String) Starts a bind operation on a DatagramSocket to a local service name.
BindServiceNameAsync(String, NetworkAdapter) Starts a bind operation on a DatagramSocket to a local service name and specific network interface.
Close [C++, JavaScript]Closes the DatagramSocket object.
ConnectAsync(EndpointPair) Starts a connect operation on a DatagramSocket to a remote network destination specified as an EndpointPair object.
ConnectAsync(HostName, String) Starts a connect operation on a DatagramSocket to a remote destination specified by a remote hostname and a remote service name.
Dispose [C#, VB]Performs tasks associated with freeing, releasing, or resetting unmanaged resources.
GetEndpointPairsAsync(HostName, String) Gets a list of EndpointPair objects based on a remote hostname and remote service name that can be used to send datagrams to a remote network destination.
GetEndpointPairsAsync(HostName, String, HostNameSortOptions) Gets a list of EndpointPair objects based on a remote hostname and remote service name and the sort order to be used.
GetOutputStreamAsync(EndpointPair) Starts an operation to get an IOutputStream to a remote network destination specified by an EndpointPair object that can then be used to send network data.
GetOutputStreamAsync(HostName, String) Starts an operation to get an IOutputStream to a remote destination specified by a remote hostname and a remote service name that can then be used to send network data.
JoinMulticastGroup Joins a DatagramSocket object to a multicast group.

 

Eigenschaften

Der DatagramSocketKlasse hat diese Eigenschaften.

EigenschaftZugriffstypBeschreibung

Control

SchreibgeschütztGets socket control data on a DatagramSocket object.

Information

SchreibgeschütztGets socket information on the local and remote hostnames and local and remote service names for the DatagramSocket object.

OutputStream

SchreibgeschütztGets the output stream to write to the remote host.

 

Hinweise

Die DatagramSocket-Klasse unterstützt Netzwerkkommunikation mit einem UDP-Datagrammsocket. Das DatagramSocket-Objekt kann für Client-Apps verwendet werden, die UDP-Pakete senden, oder für Server-Apps, die eingehende UDP-Daten überwachen.

Es sind einige Schritte erforderlich, um Daten mithilfe eines DatagramSocket-Objekts zu empfangen. Ihre App weist einem Ereignishandler zunächst das MessageReceived-Ereignis zu. Als Nächstes ruft die App entweder die BindEndpointAsync- oder BindServiceNameAsync-Methode auf, um den DatagramSocket an einen lokalen Dienstnamen oder den UDP-Port zu binden. Als Nächstes ruft die App die ConnectAsync-Methode auf. Wenn der Ereignishandler und der Bindungsvorgang nach dem Verbindungsvorgang ausgeführt werden, tritt ein Fehler auf.

Die typische Reihenfolge von Vorgängen ist wie folgt:

  • Erstellen Sie DatagramSocket.
  • Verwenden Sie die Control-Eigenschaft, um ein DatagramSocketControl-Objekt abzurufen und alle erweiterten Steuerelemente festzulegen. Dieser Schritt ist bei den meisten Apps normalerweise nicht erforderlich.
  • Ordnen Sie dem MessageReceived-Ereignis einen Ereignishandler zu.
  • Binden Sie DatagramSocket an einen lokalen Dienstnamen oder UDP-Port.
  • Rufen Sie die ConnectAsync-Methode auf, um den DatagramSocket an den Remoteendpunkt zu binden. Wenn die App Daten von Remote-Endpunkten auf dem DatagramSocket-Objekt empfangen soll, sollte die ConnectAsync-Methode nicht verwendet werden, da dadurch DatagramSocket an einen bestimmten Endpunkt gebunden wird. Stattdessen sollte die Methode BindServiceNameAsync oder BindEndpointAsync verwendet werden.

Diese Klasse kann auch verwendet werden, um die Verbindung zu einer Multicastgruppe herzustellen und UDP-Pakete zur Multicastgruppe zu senden.

Behandeln von Ausnahmen

Sie müssen Code zum Behandeln von Ausnahmen schreiben, wenn Sie asynchrone Methoden für die DatagramSocket-Klasse aufrufen. Ausnahmen können durch Parametervalidierungsfehler, Namensauflösungsfehler und Netzwerkfehler ausgelöst werden. Ausnahmen durch Netzwerkfehler (beispielsweise Verlust der Konnektivität, Verbindungsfehler und Serverfehler) können jederzeit vorkommen. Durch diese Fehler werden Ausnahmen ausgelöst. Wenn sie nicht von der Anwendung verarbeitet wird, kann eine Ausnahme bewirken, dass die gesamte App von der Laufzeit beendet wird.

Der Windows.Networking.Sockets-Namespace hat eine bequeme Hilfsmethode und Enumeration für die Fehlerbehandlung bei Verwendung von Sockets. Dies kann für eine alternative Behandlung bestimmter Netzwerkausnahmen in der App hilfreich sein. Eine App kann auch das HRESULT aus der Ausnahme bei Parametervalidierungsfehlern verwenden, um ausführlichere Informationen über den Fehler zu erhalten, der die Ausnahme ausgelöst hat.

Weitere Informationen über mögliche Ausnahmen und deren Behandlung finden Sie unter Behandeln von Ausnahmen in Netzwerk-Apps.

Verwenden von DatagramSocket unter Windows Server 2012

Unter Windows Server 2012 und Windows Server 2012 R2 kann die Windows.Networking.dll, welche die meisten Klassen aus dem Windows.Networking.Sockets-Namespace implementiert, nur geladen werden, wenn die Media Foundation-Funktion aktiviert ist. Apps, die DatagramSocket und zugehörige Socketklassen im Windows.Networking.Sockets-Namespace verwenden, scheitern daher, wenn die Media Foundation-Funktion deaktiviert ist. Windows Server 2012 oder Windows Server 2012 R2 wird mit deaktivierter Media Foundations-Funktion installiert.

Die Media Foundation-Funktion kann unter Windows Server 2012 oder Windows Server 2012 R2 mithilfe des Server-Managers oder durch Eingabe des folgenden Texts in eine Eingabeaufforderung oder in ein Skript aktiviert werden.

dism /online /enable-feature /featurename:ServerMediaFoundation

Nach dem Aktivieren der Media Foundation-Funktion wird der Benutzer aufgefordert, einen Neustart auszuführen. Nachdem der Computer neu gestartet wurde, wenden die Klassen für Sockets und WebSockets aus dem Windows.Networking.Sockets-Namespace wie erwartet arbeiten.

Anforderungen

Mindestens unterstützter Client

Windows 8 [Windows Store-Apps, Desktop-Apps]

Mindestens unterstützter Server

Windows Server 2012 [Windows Store-Apps, Desktop-Apps]

Mindestens unterstütztes Telefon

Windows Phone 8

Namespace

Windows.Networking.Sockets
Windows::Networking::Sockets [C++]

Metadaten

Windows.winmd

DLL

Windows.Networking.dll

Capabilities

internetClient
privateNetworkClientServer
ID_CAP_NETWORKING [Windows Phone]

Siehe auch

Weitere Ressourcen
Verbindung mit Netzwerkdiensten (Windows Store-Apps mit JavaScript und HTML)
Verbindung mit Netzwerkdiensten (Windows Store-Apps mit C#/VB/C++ und XAML)
Behandeln von Ausnahmen in Netzwerk-Apps
Verwenden erweiterter Socketsteuerelemente (Windows Store-Apps mit JavaScript und HTML)
Verwenden erweiterter Socketsteuerelemente (Windows Store-Apps mit C#/VB/C++ und XAML)
Schnellstart: Verbindung zu einer Netzwerkressource mit einem Datagrammsocket herstellen (Windows Store-Apps mit JavaScript und HTML)
Problembehandlung und Debuggen von Netzwerkverbindungen
Verweis
DatagramSocketControl
DatagramSocketInformation
DatagramSocketMessageReceivedEventArgs
Verwenden von erweiterten Socketsteuerelementen
IClosable
Object
SetSocketMediaStreamingMode

 

 

Anzeigen:
© 2017 Microsoft