Freigeben über


StreamSocketListener Klasse

Definition

Unterstützt das Lauschen auf eine eingehende Netzwerkverbindung über einen TCP-Stream-Socket 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

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 ID_CAP_NETWORKING [Windows Phone] internetClientServer privateNetworkClientServer

Hinweise

Die StreamSocketListener-Klasse unterstützt das Lauschen auf eine eingehende Netzwerkverbindung mithilfe eines Streamsockets und das Akzeptieren der Verbindung.

Die typische Reihenfolge der Vorgänge lautet wie folgt:

Die SocketProtectionLevel-Enumeration ermöglicht es einem Server, die Protokollaushandlung mit Clients zu steuern, wenn das StreamSocketListener-Objekt zum Lauschen 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 Lauschen 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 Gerätefunktion bluetooth.rfcomm 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 sich auf Fehler bei der Parameterüberprüfung, Fehler bei der Namensauflösung und Netzwerkfehlern ergeben. Ausnahmen von Netzwerkfehlern (z. B. Verbindungsverlust, Verbindungsfehler und Serverfehler) können jederzeit auftreten. Diese Fehler haben zur Folge, dass Ausnahmen ausgelöst werden. Wenn sie nicht von Ihrer App verarbeitet wird, kann eine Ausnahme dazu führen, dass Ihre gesamte App von der Runtime beendet wird.

Der Windows.Networking.Sockets-Namespace verfügt über Features, die die Behandlung von Fehlern bei der Verwendung von Sockets vereinfachen. Die GetStatus-Methode für die SocketError-Klasse kann das HRESULT von einer Ausnahme in einen SocketErrorStatus-Enumerationswert konvertieren. Mit ihnen lassen sich spezifische Netzwerkausnahmen in der App unterschiedlich behandeln. Eine App kann auch das HRESULT aus der Ausnahme für Parameterüberprüfungsfehler verwenden, um ausführlichere Informationen zu dem Fehler zu erhalten, der die Ausnahme verursacht hat.

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

Verwenden von StreamSocketListener mit Bluetooth

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

Um StreamSocketListener und StreamSocket mit Bluetooth zu verwenden, muss die Gerätefunktion bluetooth.rfcomm im App-Manifest festgelegt werden. Weitere Informationen finden Sie im Windows.Devices.Bluetooth.Rfcomm-Namespace , angeben von Gerätefunktionen für Bluetooth und im Beispiel Bluetooth Rfcomm Chat.

Verwenden von StreamSocketListener auf Windows Server 2012

Auf Windows Server 2012 und Windows Server 2012 R2 kann die Windows.Networking.dll, die die meisten Klassen im Windows.Networking.Sockets-Namespace implementiert, nicht geladen werden, es sei denn, das Media Foundation-Feature ist aktiviert. Daher schlagen Apps, die StreamSocketListener und zugehörige Socketklassen im Windows.Networking.Sockets-Namespace verwenden, fehl, wenn das Media Foundation-Feature deaktiviert ist. Windows Server 2012 oder Windows Server 2012 R2-Installationen mit deaktiviertem Media Foundation-Feature.

Das Media Foundation-Feature kann auf Windows Server 2012 oder Windows Server 2012 R2 mithilfe von Server-Manager oder durch Eingabe 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. Nach dem Neustart des Computers funktionieren Klassen für Sockets und WebSockets im Windows.Networking.Sockets-Namespace wie erwartet.

Konstruktoren

StreamSocketListener()

Erstellt ein neues StreamSocketListener-Objekt .

Eigenschaften

Control

Ruft Socketsteuerelementdaten für ein StreamSocketListener-Objekt ab.

Information

Ruft Socketinformationen für das StreamSocketListener-Objekt ab.

Methoden

BindEndpointAsync(HostName, String)

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

BindServiceNameAsync(String)

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

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 wird.

BindServiceNameAsync(String, SocketProtectionLevel, NetworkAdapter)

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

CancelIOAsync()

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

Close()

Schließt das StreamSocketListener-Objekt .

Dispose()

Führt anwendungsspezifische Aufgaben durch, die mit der Freigabe, der Zurückgabe oder dem Zurücksetzen von nicht verwalteten Ressourcen zusammenhängen.

EnableTransferOwnership(Guid)

Ermöglicht, dass die Hintergrundaufgabe Ihrer App vom Socketbroker ausgelöst wird, wenn Datenverkehr für diesen StreamSocketListener eingeht, während die App nicht aktiv ist.

EnableTransferOwnership(Guid, SocketActivityConnectedStandbyAction)

Ermöglicht, dass die Hintergrundaufgabe Ihrer App vom Socketbroker ausgelöst wird, wenn Datenverkehr für diesen StreamSocketListener eingeht, während sich das System im verbundenen Standbymodus befindet.

TransferOwnership(String)

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

TransferOwnership(String, SocketActivityContext)

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

Ereignisse

ConnectionReceived

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

Gilt für:

Weitere Informationen