StreamSocket-Klasse

StreamSocket Class

Unterstütz die Netzwerkkommunikation mithilfe eines Streamsockets über TCP oder Bluetooth-RFCOMM.

Syntax


var streamSocket = new Windows.Networking.Sockets.StreamSocket();

Attribute

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

Member

StreamSocketKlasse hat diese Membertypen:

Konstruktoren

StreamSocketKlasse hat diese Konstruktoren.

KonstruktorBeschreibung
StreamSocket Creates a new StreamSocket object.

 

Methoden

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

MethodeBeschreibung
Close [C++, JavaScript]Closes the StreamSocket object.
ConnectAsync(EndpointPair) Starts an asynchronous operation on a StreamSocket object to connect to a remote network destination specified as an EndpointPair object.
ConnectAsync(EndpointPair, SocketProtectionLevel) Starts an asynchronous operation on a StreamSocket object to connect to a remote network destination specified as an EndpointPair object and a SocketProtectionLevel enumeration. This method is not callable from JavaScript.
ConnectAsync(HostName, String) Starts an asynchronous operation on a StreamSocket object to connect to a remote network destination specified by a remote hostname and a remote service name.
ConnectAsync(HostName, String, SocketProtectionLevel) Starts an asynchronous operation on a StreamSocket object to connect to a remote destination specified by a remote hostname, a remote service name, and a SocketProtectionLevel.
ConnectAsync(HostName, String, SocketProtectionLevel, NetworkAdapter) Starts an asynchronous operation on a StreamSocket object on a specified local network adapter to connect to a remote destination specified by a remote hostname, a remote service name, and a SocketProtectionLevel.
Dispose [C#, VB]Performs tasks associated with freeing, releasing, or resetting unmanaged resources.
UpgradeToSslAsync Starts an asynchronous operation to upgrade a connected socket to use SSL on a StreamSocket object.

 

Eigenschaften

Der StreamSocketKlasse hat diese Eigenschaften.

EigenschaftZugriffstypBeschreibung

Control

SchreibgeschütztGets socket control data on a StreamSocket object.

Information

SchreibgeschütztGets socket information on a StreamSocket object.

InputStream

SchreibgeschütztGets the input stream to read from the remote destination on a StreamSocket object.

OutputStream

SchreibgeschütztGets the output stream to write to the remote host on a StreamSocket object.

 

Hinweise

Die StreamSocket-Klasse unterstützt die Netzwerkkommunikation, die ein Streamsocket über TCP oder Bluetooth-RFCOMM verwendet.

Für eine Client-App ist die am häufigsten verwendete Sequenz von Vorgängen mithilfe einer StreamSocket-Klasse die folgende:

  • Erstellen Sie StreamSocket.
  • Rufen Sie ein StreamSocketControl-Objekt mithilfe der Control-Eigenschaft auf, und legen Sie die Eigenschaften auf dem StreamSocketControl-Objekt fest, bevor Sie eine der ConnectAsync-Methoden aufrufen.
  • Rufen Sie eine der ConnectAsync-Methoden auf, um eine Verbindung mit dem Remoteendpunkt herzustellen. Wenn eine SSL/TLS-Verbindung sofort benötigt wird, kann dies mithilfe verschiedener ConnectAsync-Methoden angegeben werden. Wird nach dem Senden und Empfangen einiger ursprünglicher Daten eine SSL-/TSL-Verbindung benötigt, dann kann die UpgradeToSslAsync-Methode später aufgerufen werden, um ein Upgrade durchzuführen, sodass die Verbindung SSL unterstützt.
  • Rufen Sie die OutputStream-Eigenschaft auf, um die Daten an den Remotehost zu schreiben.
  • Rufen Sie die InputStream-Eigenschaft auf, um die Daten vom Remotehost zu lesen.
  • Lesen und schreiben Sie Daten nach Bedarf.
  • Rufen Sie die Close-Methode auf, um alle ausstehenden Vorgänge abzubrechen und alle nicht verwalteten Ressourcen freizugeben, die dem StreamSocket-Objekt zugeordnet sind.

Hinweis  Close wird von Windows Store-Apps verwendet, die in JavaScript geschrieben werden. Für Apps, die in .NET Framework 4.5 in C# und VB.NET geschrieben sind, wird die Close-Methode als Dispose()-Methode auf dem StreamSocket verfügbar gemacht. Für Apps, die in C++ geschrieben sind, wird die Close-Methode aufgerufen, wenn das Löschschlüsselwort für das Objekt verwendet wird.

Das StreamSocket-Objekt wird auch in Verbindung mit dem StreamSocketListener-Objekt verwendet, um auf eingehende Verbindungen über TCP oder Bluetooth RFCOMM in den Server-Apps oder den Peer-to-Peer-Apps zu lauschen. Ein StreamSocket-Objekt wird von der Socket-Eigenschaft für das ConnectionReceived-Ereignis zurückgegeben, wenn ein StreamSocketListener-Objekt eine Aufforderung zum Herstellen einer TCP- oder Bluetooth RFCOMM-Verbindung empfängt. Weitere Informationen finden Sie unter StreamSocketListener.

Behandeln von Ausnahmen

Sie müssen Code zum Behandeln von Ausnahmen schreiben, wenn Sie asynchrone Methoden für die StreamSocket-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 StreamSocket mit Bluetooth und Wi-Fi Direct

Ihre App kann auch einen StreamSocket für Netzwerkverbindungen zwischen Geräten verwenden, die sich in der Nähe befinden. Klassen im Windows.Networking.Proximity-Namespace unterstützen Netzwerkverbindungen mit einem StreamSocket, der Bluetooth oder Wi-Fi Direct für nahe gelegenen Geräten verwendet. Der PeerFinder und verwandte Klassen im Windows.Networking.Proximity-Namespace ermöglichen der App, eine andere Instanz Ihrer App auf einem nahe gelegenen Gerät zu ermitteln. Ihre App kann mit einer Tippbewegung oder über Durchsuchen eine StreamSocket-Verbindung mit der nahe gelegenen Peer-App herstellen. Weitere Informationen finden Sie unter Unterstützung von Näherung und Tippen, Windows.Networking.Proximity, PeerFinder, Windows.Devices.Bluetooth.Rfcomm, Näherungsbeispiel und Bluetooth Rfcomm-Chatbeispiel.

Verwenden von StreamSocket 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 StreamSocket 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
Sichern von Socketverbindungen mit TLS/SSL (Windows Store-Apps mithilfe von JavaScript und HTML)
Sichern von Socketverbindungen mit TLS/SSL (Windows Store-Apps mithilfe von C#/VB/C++ und XAML)
Festlegen von Hintergrundkonnektivitätsoptionen
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 Streamsocket herstellen (Windows Store-Apps mit JavaScript und HTML)
Schnellstart: Verbindung zu einer Netzwerkressource mit einem Streamsocket herstellen (Windows Store-Apps mit C#, VB, C++ und XAML)
Unterstützung von Näherung und Kopplung
Problembehandlung und Debuggen von Netzwerkverbindungen
Verweis
ControlChannelTrigger
IClosable
Object
PeerFinder
SetSocketMediaStreamingMode
StreamSocketListener
StreamSocketListener.ConnectAsync
Windows.Devices.Bluetooth.Rfcomm
Windows.Networking.Proximity
Beispiele
Bluetooth Rfcomm-Chatbeispiel
Beispiel ControlChannelTrigger StreamSocket
Nähebeispiel
StreamSocket-Beispiel

 

 

Anzeigen:
© 2017 Microsoft