StreamSocket Klasse
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.
Unterstützt die Netzwerkkommunikation mithilfe eines Datenstromsockets über TCP oder Bluetooth RFCOMM in UWP-Apps.
public ref class StreamSocket 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 StreamSocket 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 StreamSocket 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 StreamSocket : 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 StreamSocket : System.IDisposable
function StreamSocket()
Public NotInheritable Class StreamSocket
Implements IDisposable
- Vererbung
- 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
internetClient
privateNetworkClientServer
|
Beispiele
Beispielanwendungen, die diese Klasse verwenden, umfassen Bluetooth RFCOMM-Chatbeispiel, DatagramSocket-Beispiel (Windows 10), Socketaktivitätstrigger-Datenstromsocket-Beispiel, StreamSocket-Beispiel (Windows 10) und Wi-Fi Direct-Beispiel.
Hinweise
Die StreamSocket-Klasse unterstützt Die Netzwerkkommunikation, die einen Streamsocket über TCP oder Bluetooth RFCOMM in UWP-Apps verwendet.
Für eine Client-App sind die am häufigsten verwendeten Vorgänge mit einem StreamSocket folgendes:
- Erstellen Sie das StreamSocket.
- Rufen Sie ein StreamSocketControl-Objekt mithilfe der Control-Eigenschaft ab, und legen Sie alle Eigenschaften für das StreamSocketControl-Objekt fest, bevor Sie eine der ConnectAsync-Methoden aufrufen.
- Rufen Sie eine der ConnectAsync-Methoden auf, um eine Verbindung mit dem Remoteendpunkt herzustellen. Bei Bluetooth ist der Remotedienstname eine Bluetooth-Dienst-ID. Wenn eine SSL/TLS-Verbindung für TCP oder eine Verschlüsselungsstufe für Bluetooth sofort erforderlich ist, kann dies mithilfe einiger connectAsync-Methoden angegeben werden. Wenn eine SSL/TLS-Verbindung nach dem Senden und Empfangen einiger Anfangsdaten für einen TCP-Socket gewünscht wird, kann die UpgradeToSslAsync-Methode später aufgerufen werden, um die Verbindung auf die Verwendung von SSL zu aktualisieren.
- Rufen Sie die OutputStream-Eigenschaft ab, um Daten auf den Remotehost zu schreiben.
- Rufen Sie die InputStream-Eigenschaft ab, um Daten vom Remotehost zu lesen.
- Daten nach Bedarf lesen und schreiben.
- Rufen Sie die Close-Methode auf, um den Socket zu trennen, alle ausstehenden Vorgänge abzubrechen und alle nicht verwalteten Ressourcen freizugeben, die dem StreamSocket-Objekt zugeordnet sind.
Hinweis
Die Close-Methode wird von UWP-Apps verwendet, die in JavaScript geschrieben wurden. Für Apps, die mit dem .NET Framework 4.5 in C# und VB geschrieben wurden.NET wird die Close-Methode als Methode für das StreamSocket verfügbar gemacht. Bei Apps, die in C++ geschrieben wurden, wird die Close-Methode aufgerufen, wenn das Löschschlüsselwort für das Objekt verwendet wird.
Durch das explizite Schließen eines StreamSocket-Objekts (Aufrufen der Close-Methode ) wird sichergestellt, dass die Verbindung ordnungsgemäß getrennt wird, wenn keine ausstehenden Lese- oder Schreibvorgänge für den Socket vorhanden sind. Alle ausstehenden Lesevorgänge werden automatisch abgebrochen, und das StreamSocket wartet auf alle laufenden E/A-Vorgänge, bevor die Verbindung unterbrochen wird. Wenn nach Abschluss der laufenden E/A keine ungelesenen Daten im Socket verbleiben, wird garantiert eine ordnungsgemäße Trennung (FIN) durchgeführt. Andernfalls tritt eine nicht ordnungsgemäße Trennung (RST) auf.
Wenn ein aktives (weiterhin verbundenes) StreamSocket-Objekt den Gültigkeitsbereich überschreitet, kann eine abgebrochene (nicht ordnungsgemäße) Trennung dazu führen, dass zuvor gesendete Daten verworfen werden, bevor sie vom Remote-Peer gelesen werden. Es wird dringend empfohlen, Close (die Close-Methode in JavaScript, die Methode in C# und VB.NET oder den Löschoperator in C++) für ein StreamSocket-Objekt aufgerufen zu werden, bevor er den Gültigkeitsbereich überschreitet.
Wenn ein Lese- oder Schreibvorgang abgebrochen wird, wird der E/A-Vorgang mit dem Fehlerstatus abgeschlossen und das zugeordnete StreamSocket-Objekt reißt sofort die Verbindung ab, was zu einer nicht fehlerfreien Verbindung (RST) führt, wenn ungelesene oder nicht gelesene Daten im Socket verbleiben.
Ungraceful disconnects (RST) tritt immer auf, wenn: Eine ungewöhnliche Beendigung erfolgt (z. B. die App stürzt ab); oder ein abnormer Verbindungsfehler wird durch den Netzwerkstapel erkannt (z. B. TCP-Timeout erneut übermitteln).
Das StreamSocket-Objekt wird auch in Verbindung mit dem StreamSocketListener-Objekt verwendet, um eingehende Verbindungen über TCP oder Bluetooth RFCOMM in Server-Apps oder Peer-to-Peer-Apps zu überwachen. Ein StreamSocket-Objekt wird von der Socket-Eigenschaft für das ConnectionReceived-Ereignis zurückgegeben, wenn ein StreamSocketListener-Objekt eine TCP- oder Bluetooth RFCOMM-Verbindungsanforderung empfängt. Weitere Informationen finden Sie unter StreamSocketListener.
Unterstützung für Proxys
In einer UWP-App unterstützt die StreamSocket-Klasse die Verbindung mit einem Remoteendpunkt, wenn Proxys erforderlich sind, um die Verbindung abzuschließen. Diese Unterstützung für Proxys ist für die App automatisch und transparent. Ein StreamSocket kann eine Verbindung über authentifizierende Proxys sowie über andere Proxys herstellen, bei denen keine Authentifizierung erforderlich ist. Die Authentifizierung von Proxys funktioniert nur, wenn Internet Explorer oder eine App, die die HttpClient-Klasse in der Windows verwendet. Der Web.Http-Namespace hat sich zuvor erfolgreich mit dem Proxy authentifiziert, und die zuvor für die Authentifizierung verwendeten Anmeldeinformationen sind weiterhin gültig. Die Unterstützung für die Authentifizierung von Proxys funktioniert nicht, wenn ein anderer Webbrowser als Internet Explorer verwendet wurde, um die Authentifizierungsanmeldeinformationen für den Proxy bereitzustellen. Das Herstellen einer Verbindung über Proxys wird nicht unterstützt, wenn in der ConnectAsync-Methode eine lokale Hostadresse oder ein bestimmter Netzwerkadapter angegeben wird.
In einer UWP-App versuchen die ConnectAsync-Methoden im StreamSocket-Objekt, Proxys und die aktuelle Proxykonfiguration sowohl vor als auch nach der Namensauflösung zu ermitteln, um die Verbindungseinrichtung zu beschleunigen. Wenn für den Endpunkt anstelle eines Dienstnamens ein Port angegeben ist, werden sowohl proxyermittlung als auch namensauflösung intern initiiert. Wenn die Proxyermittlung vor der Namensauflösung abgeschlossen ist und die CanConnectDirectly-Eigenschaft des ProxyConfiguration-Objekts"false" lautet, wird versucht, eine Proxyverbindung herzustellen. Nach Abschluss der Namensauflösung wird die Proxyermittlung erneut mit der aufgelösten Endpunktadresse initiiert, um die aktuelle Proxykonfiguration zu ermitteln. Wenn CanConnectDirectly nach der Namensauflösung angibt, dass die App eine direkte Verbindung mit dem Remoteendpunkt herstellen kann, wird eine Socketverbindung direkt mit dem Endpunkt versucht. Wenn CanConnectDirectly nach der Namensauflösung falsch ist, wird eine Socketverbindung direkt mit dem Endpunkt versucht, und eine parallele Socketverbindung wird über den Proxy versucht. Die erste erfolgreiche Verbindung wird vom StreamSocket verwendet, und die andere Verbindung wird abgebrochen.
Es kann Vorkommen geben, in denen CanConnectDirectly"false" zurückgibt, aber es bedeutet nicht, dass Sie nicht direkt auf die Ressource zugreifen können. Ein lokales Netzwerk kann so konfiguriert werden, dass sowohl eine Proxy- als auch eine Netzwerkadressenübersetzung (Network Address Translation, NAT) unterstützt werden. Das WPAD-Skript, das zum Bereitstellen von Proxyinformationen an einen Webbrowser oder HttpClient verwendet wird, teilt Windows mit, dass er den Proxy verwenden sollte. Dies kann zu Problemen führen, wenn der Remoteendpunkt keine Proxyverbindung erwartet (z. B. eine HTTP CONNECT-Anforderung). Eine App kann die GetProxyConfigurationAsync-Methode für das NetworkInformation-Objekt verwenden, das den Remoteendpunkt und den Port für den URI-Parameter übergibt, um Proxyinformationen abzurufen, um festzustellen, wann diese Bedingung vermutet wird. Eine Möglichkeit, zu verhindern, dass Proxyverbindungsanforderungen gesendet werden, wenn ein Server nur direkte Verbindungen verarbeiten kann, ist die Verwendung der ConnectAsync(HostName, String, SocketProtectionLevel, NetworkAdapter) -Methode, da die proxybezogene Logik deaktiviert ist, wenn ein bestimmter Netzwerkadapter ausgewählt wird.
Behandeln von Ausnahmen
Sie müssen Code schreiben, um Ausnahmen zu behandeln, wenn Sie asynchrone Methoden für die StreamSocket-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 StreamSocket mit Näherung, Wi-Fi Direct und Bluetooth
Ihre App kann ein StreamSocket für Netzwerkverbindungen zwischen Geräten verwenden, die sich innerhalb des engen Bereichs befinden. Kurse im Windows. Networking.Proximity-Namespace unterstützt Netzwerkverbindungen mit einem StreamSocket mit Geräten in der Nähe, die Bluetooth oder Wi-Fi Direct verwenden. Der PeerFinder und verwandte Klassen im Windows. Mit dem Namespace Networking.Proximity kann Ihre App eine andere Instanz Ihrer App auf einem nahe gelegenen Gerät ermitteln. Die PeerFinder.FindAllPeersAsync-Methode sucht nach Peercomputern, auf denen dieselbe App im drahtlosen Bereich ausgeführt wird. Die PeerFinder.ConnectAsync-Methode gibt ein verbundenes StreamSocket zurück, mit dem Ihre App Netzwerkdaten mit der nahe gelegenen Peer-App übertragen kann. Weitere Informationen finden Sie unter Unterstützen von Näherung und Tippen, Windows. Networking.Proximity, PeerFinder und das Näherungsbeispiel.
Ihre App kann auch ein StreamSocket für Netzwerkverbindungen zwischen Geräten verwenden, die Wi-Fi Direct mit Klassen im Windows verwenden. Devices.WiFiDirect-Namespace. Die WiFiDirectDevice-Klasse kann verwendet werden, um andere Geräte zu suchen, die über ein Wi-Fi Direct(WFD)-fähiges Gerät verfügen. Die WiFiDirectDevice.GetDeviceSelector-Methode ruft den Gerätebezeichner für ein nahe gelegenes WFD-Gerät ab. Sobald Sie einen Verweis auf ein nahe gelegenes WFD-Gerät haben, können Sie die WiFiDirectDevice.GetConnectionEndpointPairs-Methode aufrufen, um ein EndpointPair-Objekt abzurufen. Die Methode ConnectAsync(EndpointPair) oder ConnectAsync(EndpointPair, SocketProtectionLevel) der StreamSocket-Klasse kann dann verwendet werden, um eine Socketverbindung herzustellen. Weitere Informationen finden Sie unter Windows. Devices.WiFiDirect und WiFiDirectDevice.
Bluetooth verwendet Bluetooth-Dienst-IDs als Endpunkte für StreamSocket-Verbindungen, keine Hostnamen oder IP-Adressen. Um ein 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 StreamSocket 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 StreamSocket 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.
Auflösen von DNS-Diensteinträgen mit StreamSocket
Eine App kann mit der Ziel-DNS-Adresse kommunizieren, die zu einem SRV-Eintrag gehört.
Beispielsweise entspricht _xmpp-client._tcp.contoso.comein erweiterbarer XMPP-Dienst (Messaging and Presence Protocol) in der Contoso-Domäne .
Dieser Dienstname entspricht einem Server-DNS-Namen, z xmpp-client01.contoso.com. B. .
Um eine Verbindung mit der DNS-Adresse für den Server für diesen Dienst herzustellen, verwenden Sie den folgenden Methodenaufruf für eine StreamSocket-Instanz:
using Windows.Networking.Sockets;
StreamSocket socket = new StreamSocket();
socket.ConnectAsync(new HostName("contoso.com"), "xmpp-client");
Das Protokoll wird abgeleitet, um TCP für StreamSocket-Instanzen zu sein. Die Methode behandelt die Unterstrichzeichen.
Ein DNS kann so konfiguriert werden, dass er eine SRV-Hierarchie hat.
Eine DNS SRV-Ressourceneinträge könnte die folgende Form aufweisen: _xmpp-client._service01._tcp.contoso.com.
Verwenden Sie in diesem Beispiel den folgenden Methodenaufruf für eine StreamSocket-Instanz:
socket.ConnectAsync(new HostName("contoso.com"), "xmpp-client._service01");
Diese Codeausschnitte verwenden ConnectAsync. Die GetEndpointPairsAsync-Methode unterstützt ähnliche Verwendung zum Herstellen einer Verbindung mit Diensten.
Versionsverlauf
| Windows-Version | SDK-Version | Mehrwert |
|---|---|---|
| 1607 | 14393 | GetEndpointPairsAsync(HostName,String) |
| 1607 | 14393 | GetEndpointPairsAsync(HostName,String,HostNameSortOptions) |
Konstruktoren
| Name | Beschreibung |
|---|---|
| StreamSocket() |
Erstellt ein neues StreamSocket -Objekt. |
Eigenschaften
| Name | Beschreibung |
|---|---|
| Control |
Ruft Socketsteuerelementdaten für ein StreamSocket -Objekt ab. |
| Information |
Ruft Socketinformationen für ein StreamSocket -Objekt ab. |
| InputStream |
Ruft den Eingabedatenstrom ab, der vom Remoteziel eines StreamSocket -Objekts gelesen werden soll. |
| OutputStream |
Ruft den Ausgabedatenstrom ab, der in den Remotehost eines StreamSocket -Objekts geschrieben werden soll. |
Methoden
| Name | Beschreibung |
|---|---|
| CancelIOAsync() |
Bricht ausstehende Lese- und Schreibvorgänge über ein StreamSocket -Objekt ab. |
| Close() |
Schließt das StreamSocket -Objekt. |
| ConnectAsync(EndpointPair, SocketProtectionLevel) |
Startet einen asynchronen Vorgang für ein StreamSocket -Objekt, um eine Verbindung mit einem Remotenetzwerkziel herzustellen, das als EndpointPair -Objekt und eine SocketProtectionLevel-Enumeration angegeben ist. Diese Methode kann von JavaScript nicht aufgerufen werden. |
| ConnectAsync(EndpointPair) |
Startet einen asynchronen Vorgang für ein StreamSocket -Objekt, um eine Verbindung mit einem Remotenetzwerkziel herzustellen, das als EndpointPair -Objekt angegeben ist. |
| ConnectAsync(HostName, String, SocketProtectionLevel, NetworkAdapter) |
Startet einen asynchronen Vorgang für ein StreamSocket -Objekt auf einem angegebenen lokalen Netzwerkadapter, um eine Verbindung mit einem Remoteziel herzustellen, das durch einen Remotehostnamen, einen Remotedienstnamen und einen SocketProtectionLevel angegeben wird. |
| ConnectAsync(HostName, String, SocketProtectionLevel) |
Startet einen asynchronen Vorgang für ein StreamSocket -Objekt, um eine Verbindung mit einem Remoteziel herzustellen, das durch einen Remotehostnamen, einen Remotedienstnamen und einen SocketProtectionLevel angegeben wird. |
| ConnectAsync(HostName, String) |
Startet einen asynchronen Vorgang für ein StreamSocket -Objekt, um eine Verbindung mit einem Remotenetzwerkziel herzustellen, das durch einen Remotehostnamen und einen Remotedienstnamen angegeben wird. |
| Dispose() |
Führt anwendungsdefinierte Aufgaben aus, die mit dem Freigeben, Freigeben oder Zurücksetzen nicht verwalteter Ressourcen verknüpft sind. |
| EnableTransferOwnership(Guid, SocketActivityConnectedStandbyAction) |
Aktiviert oder deaktiviert die Möglichkeit der Hintergrundaufgabe Ihrer App, vom Socketbroker ausgelöst zu werden, wenn datenverkehr für dieses StreamSocket 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 dieses StreamSocket eingeht, während die App nicht aktiv ist. |
| GetEndpointPairsAsync(HostName, String, HostNameSortOptions) |
Ruft eine Liste der EndpointPair -Objekte basierend auf einem Remotehost- und Remotedienstnamen und der zu verwendenden Sortierreihenfolge ab. |
| GetEndpointPairsAsync(HostName, String) |
Ruft eine Liste der EndpointPair -Objekte basierend auf einem Remotehost- und Remotedienstnamen ab, die zum Senden von TCP-Paketen an ein Remotenetzwerkziel verwendet werden können. |
| TransferOwnership(String, SocketActivityContext, TimeSpan) |
Überträgt den Besitz des StreamSocket an den Socketbrokerdienst, der die Socketaktivität überwacht und die App über eine Hintergrundaufgabe benachrichtigt, wenn eine Aktivität vorhanden ist. Gibt einen neuen SocketActivityContext und eine Keep Alive-Zeit für den Socket an. |
| TransferOwnership(String, SocketActivityContext) |
Überträgt den Besitz des StreamSocket an den Socketbrokerdienst, der die Socketaktivität überwacht und die App über eine Hintergrundaufgabe benachrichtigt, wenn eine Aktivität vorhanden ist. Gibt einen neuen SocketActivityContext für den Socket an. |
| TransferOwnership(String) |
Überträgt den Besitz des StreamSocket an den Socketbrokerdienst, der die Socketaktivität überwacht und die App über eine Hintergrundaufgabe benachrichtigt, wenn eine Aktivität vorhanden ist. |
| UpgradeToSslAsync(SocketProtectionLevel, HostName) |
Startet einen asynchronen Vorgang zum Upgrade eines verbundenen Sockets, um SSL für ein StreamSocket -Objekt zu verwenden. |
Gilt für:
Siehe auch
- ControlChannelTrigger
- IClosable
- GetProxyConfigurationAsync(Uri)
- CanConnectDirectly
- PeerFinder
- SocketError
- SocketErrorStatus
- StreamSocketControl
- DatagramSocketInformation
- StreamSocketListener
- ConnectAsync(Uri)
- WiFiDirectDevice
- Windows.Devices.Bluetooth.Rfcomm
- Windows.Devices.WiFiDirect
- Windows.Networking.Proximity
- Herstellen einer Verbindung mit Sockets (XAML)
- Behandeln von Ausnahmen in Netzwerk-Apps
- So wird's ausgeführt: Herstellen einer Verbindung mit einem Datenstromsocket (HTML)
- So wird's ausgeführt: Herstellen einer Verbindung mit einem Datenstromsocket (XAML)
- So sichern Sie Socketverbindungen mit TLS/SSL (HTML)
- So sichern Sie Socketverbindungen mit TLS/SSL (XAML)
- Festlegen von Optionen für die Hintergrundkonnektivität
- Angeben von Gerätefunktionen für Bluetooth
- So wird's ausgeführt: Verwenden erweiterter Socketsteuerelemente (XAML)
- Unterstützen von Näherung und Koppeln
- Problembehandlung und Debuggen von Netzwerkverbindungen
- SetSocketMediaStreamingMode
- Bluetooth Rfcomm-Chatbeispiel
- Beispiel für ControlChannelTrigger StreamSocket
- Näherungsbeispiel
- StreamSocket-Beispiel (Windows 10)
- DatagramSocket-Beispiel (Windows 10)
- Beispiel für Socketaktivitätsauslöser-Datenstromsocket