Sprache

StreamSocketListener Klasse

Definition

Unterstützt die Überwachung einer eingehenden Netzwerkverbindung mit einem TCP-Streamsocket oder Bluetooth RFCOMM.

public ref class StreamSocketListener sealed : IClosable
/// [Windows.Foundation.Metadata.Activatable(65536, Windows.Foundation.UniversalApiContract)]
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.UniversalApiContract, 65536)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
/// [Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
class StreamSocketListener final : IClosable
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.UniversalApiContract, 65536)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
/// [Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
/// [Windows.Foundation.Metadata.Activatable(65536, "Windows.Foundation.UniversalApiContract")]
class StreamSocketListener final : IClosable
[Windows.Foundation.Metadata.Activatable(65536, typeof(Windows.Foundation.UniversalApiContract))]
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.UniversalApiContract), 65536)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
[Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
public sealed class StreamSocketListener : System.IDisposable
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.UniversalApiContract), 65536)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
[Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
[Windows.Foundation.Metadata.Activatable(65536, "Windows.Foundation.UniversalApiContract")]
public sealed class StreamSocketListener : System.IDisposable
function StreamSocketListener()
Public NotInheritable Class StreamSocketListener
Implements IDisposable
Vererbung
Object Platform::Object IInspectable StreamSocketListener
Attribute
Implementiert

Windows-Anforderungen

Anforderungen Beschreibung
Gerätefamilie
Windows 10 (eingeführt in 10.0.10240.0)
API contract
Windows.Foundation.UniversalApiContract (eingeführt in v1.0)
App-Funktionen
bluetooth.rfcomm internetClientServer privateNetworkClientServer

Hinweise

Die StreamSocketListener-Klasse unterstützt das Überwachen einer eingehenden Netzwerkverbindung mithilfe eines Datenstromsockets und akzeptieren die Verbindung.

Die typische Reihenfolge der Vorgänge lautet wie folgt:

Die SocketProtectionLevel-Aufzählung ermöglicht es einem Server, die Protokollaushandlung mit Clients zu steuern, wenn das StreamSocketListener-Objekt zum Überwachen und Binden an Sockets über Bluetooth verwendet wird. Wenn das StreamSocketListener-Objekt über Bluetooth verwendet wird, sind die unterstützten SocketProtectionLevel-WertePlainSocket, BluetoothEncryptionAllowNullAuthentication oder BluetoothEncryptionWithAuthentication. Wenn das StreamSocketListener-Objekt zum Überwachen und Binden an Sockets verwendet wird, die nicht Bluetooth verwenden, ist der einzige unterstützte SocketProtectionLevel-WertPlainSocket.

Um StreamSocketListener mit Bluetooth zu verwenden, muss die Bluetooth.rfcomm-Gerätefunktion im App-Manifest festgelegt werden. Weitere Informationen finden Sie unter Angeben von Gerätefunktionen für Bluetooth.

Behandeln von Ausnahmen

Sie müssen Code schreiben, um Ausnahmen zu behandeln, wenn Sie asynchrone Methoden für die StreamSocketListener-Klasse aufrufen. Ausnahmen können aus Parameterüberprüfungsfehlern, Namensauflösungsfehlern und Netzwerkfehlern resultieren. Ausnahmen von Netzwerkfehlern (z. B. Verbindungsverlust, Verbindungsfehler und Serverfehler) können jederzeit auftreten. Diese Fehler führen dazu, dass Ausnahmen ausgelöst werden. Wenn die App nicht behandelt wird, kann eine Ausnahme dazu führen, dass die gesamte App von der Laufzeit beendet wird.

Die Windows. Networking.Sockets-Namespace verfügt über Features, die die Behandlung von Fehlern bei der Verwendung von Sockets vereinfachen. Die GetStatus-Methode der SocketError-Klasse kann das HRESULT aus einer Ausnahme in einen SocketErrorStatus-Enumerationswert konvertieren. Dies kann nützlich sein, um bestimmte Netzwerk exceptions in Ihrer App anders zu behandeln. Eine App kann auch das HRESULT aus der Ausnahme bei Parameterüberprüfungsfehlern verwenden, um ausführlichere Informationen zum Fehler zu erhalten, der die Ausnahme verursacht hat.

Weitere Informationen zu möglichen Ausnahmen und zur Behandlung von Ausnahmen finden Sie unter Behandeln von Ausnahmen in Netzwerk-Apps.

Verwenden von StreamSocketListener mit Bluetooth

Ihre App kann StreamSocketListener verwenden, um netzwerkverbindungen über Bluetooth RFCOMM zu überwachen. Netzwerkverbindungen über Bluetooth verwenden eine Bluetooth-Dienst-ID als Endpunkt für Verbindungen, nicht einen IP-Port oder einen Dienstnamen. Um Bluetooth zu überwachen, ruft Ihre App eine der BindServiceNameAsync-Methoden für StreamSocketListener auf, wobei der parameter "localServiceName " auf eine Bluetooth-Dienst-ID festgelegt ist.

Um StreamSocketListener und StreamSocket mit Bluetooth zu verwenden, muss die Bluetooth.rfcomm-Gerätefunktion im App-Manifest festgelegt werden. Weitere Informationen finden Sie im Windows. Devices.Bluetooth.Rfcomm namespace, How to specify device capabilities for Bluetooth, and the Bluetooth Rfcomm Chat sample.

Verwenden von StreamSocketListener auf Windows Server 2012

Auf Windows Server 2012 und Windows Server 2012 R2 wird der Windows.Networking.dll, der die meisten Klassen in der Windows implementiert. Der Namespace "Networking.Sockets" kann nicht geladen werden, es sei denn, das Media Foundation-Feature ist aktiviert. Daher verwenden Apps, die StreamSocketListener und zugehörige Socketklassen im Windows verwenden. Der Namespace Networking.Sockets schlägt fehl, wenn das Media Foundation-Feature deaktiviert ist. Windows Server 2012- oder Windows Server 2012 R2-Installationen mit deaktivierter Media Foundation-Funktion.

Das Media Foundation-Feature kann auf Windows Server 2012 oder Windows Server 2012 R2 mithilfe von Server-Manager oder durch Eingeben des folgenden Texts in eine Eingabeaufforderung oder ein Skript aktiviert werden:

dism /online /enable-feature /featurename:ServerMediaFoundation Nachdem das Media Foundation-Feature aktiviert wurde, wird der Benutzer zum Neustart aufgefordert. Nachdem der Computer neu gestartet wurde, werden Klassen für Sockets und WebSockets im Windows. Networking.Sockets-Namespace funktioniert wie erwartet.

Konstruktoren

Name Beschreibung
StreamSocketListener()

Erstellt ein neues StreamSocketListener -Objekt.

Eigenschaften

Name Beschreibung
Control

Ruft Socketsteuerelementdaten für ein StreamSocketListener -Objekt ab.

Information

Ruft Socketinformationen für das StreamSocketListener -Objekt ab.

Methoden

Name Beschreibung
BindEndpointAsync(HostName, String)

Startet einen Bindungsvorgang für einen StreamSocketListener an einen lokalen Hostnamen und einen lokalen Dienstnamen.

BindServiceNameAsync(String, SocketProtectionLevel, NetworkAdapter)

Startet einen Socketbindungsvorgang für einen StreamSocketListener mit einem lokalen Dienstnamen auf einem angegebenen Netzwerkadapter mit einem angegebenen SocketProtectionLevel , der für alle gebundenen Sockets festgelegt werden soll.

BindServiceNameAsync(String, SocketProtectionLevel)

Startet einen Bindungsvorgang für einen StreamSocketListener an einen lokalen Dienstnamen mit einem angegebenen SocketProtectionLevel , der für alle gebundenen Sockets festgelegt werden soll.

BindServiceNameAsync(String)

Startet einen Bindungsvorgang für einen StreamSocketListener an einen lokalen Dienstnamen.

CancelIOAsync()

Bricht ausstehende Lese- und Schreibvorgänge über ein StreamSocketListener -Objekt ab.

Close()

Schließt das StreamSocketListener -Objekt.

Dispose()

Führt anwendungsdefinierte Aufgaben aus, die mit dem Freigeben, Freigeben oder Zurücksetzen nicht verwalteter Ressourcen verknüpft sind.

EnableTransferOwnership(Guid, SocketActivityConnectedStandbyAction)

Ermöglicht es der Hintergrundaufgabe Ihrer App, vom Socketbroker ausgelöst zu werden, wenn datenverkehr für diesen StreamSocketListener eingeht, während sich das System im verbundenen Standbymodus befindet.

EnableTransferOwnership(Guid)

Ermöglicht es der Hintergrundaufgabe Ihrer App, vom Socketbroker ausgelöst zu werden, wenn datenverkehr für diesen StreamSocketListener eingeht, während die App nicht aktiv ist.

TransferOwnership(String, SocketActivityContext)

Überträgt den Besitz des StreamSocketListener an den Socketbrokerdienst, der die Socketaktivität überwacht, und benachrichtigt die App über eine Hintergrundaufgabe, wenn eine Aktivität vorhanden ist.

TransferOwnership(String)

Überträgt den Besitz des StreamSocketListener an den Socketbrokerdienst, der die Socketaktivität überwacht, und benachrichtigt die App über eine Hintergrundaufgabe, wenn eine Aktivität vorhanden ist.

Events

Name Beschreibung
ConnectionReceived

Ein Ereignis, das angibt, dass eine Verbindung im StreamSocketListener -Objekt empfangen wurde.

Gilt für:

Siehe auch