StreamSocket Class

TCP または Bluetooth RFCOMM 経由のストリーム ソケットを使用してネットワーク通信をサポートします。

構文


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

属性

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

メンバー

StreamSocketクラス には次の種類のメンバーがあります。

コンストラクター

StreamSocketクラス にはこれらのコンストラクターがあります。

コンストラクター説明
StreamSocket Creates a new StreamSocket object.

 

メソッド

The StreamSocket クラス には次のメソッドがあります。 With C#、Visual Basic、および C++ では、以下からもメソッドが継承されます。Object クラス.

メソッド説明
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.

 

プロパティ

StreamSocketクラス には次のプロパティがあります。

プロパティアクセスの種類説明

Control

読み取り専用Gets socket control data on a StreamSocket object.

Information

読み取り専用Gets socket information on a StreamSocket object.

InputStream

読み取り専用Gets the input stream to read from the remote destination on a StreamSocket object.

OutputStream

読み取り専用Gets the output stream to write to the remote host on a StreamSocket object.

 

解説

StreamSocket クラスは、TCP または Bluetooth RFCOMM 経由のストリーム ソケットを使用するネットワーク通信をサポートします。

クライアント アプリで StreamSocket を使用する操作の流れとしては、次のような手順が最も一般的です。

  • StreamSocket を作成します。
  • Control プロパティを使用して StreamSocketControl オブジェクトを取得し、ConnectAsync メソッドのいずれかを呼び出す前に、StreamSocketControl オブジェクトの任意のプロパティを設定します。
  • いずれかの ConnectAsync メソッドを呼び出して、リモートのエンドポイントとの接続を確立します。SSL/TLS 接続がすぐに必要な場合、いくつかの ConnectAsync メソッドを使用してこれを指定できます。初期データの送受信後に SSL/TSL 接続が望まれる場合は、UpgradeToSslAsync メソッドを後で呼び出して、SSL を使用する接続にアップグレードすることができます。
  • OutputStream プロパティを取得してリモート ホストにデータを書き込みます。
  • InputStream プロパティを取得してリモート ホストからデータを読み取ります。
  • 必要に応じて、データの読み取りと書き込みを行います。
  • Close メソッドを呼び出して、保留中の操作を中止し、StreamSocket オブジェクトに関連するすべてのアンマネージ リソースを解放します。

メモ  Close は、JavaScript で記述されている Windows ストア アプリケーションによって使用されます。C# および VB.NET の .NET Framework 4.5 を使用して記述されたアプリケーションでは、Close メソッドが StreamSocketDispose() メソッドとして公開されます。C++ で記述されたアプリケーションでは、オブジェクトで削除キーワードを使用すると Close メソッドが呼び出されます。

StreamSocket オブジェクトを StreamSocketListener オブジェクトと組み合わせて使用し、サーバー アプリやピアツーピア アプリで TCP または Bluetooth RFCOMM 上の受信接続をリッスンすることもできます。 StreamSocket オブジェクトは、StreamSocketListener オブジェクトが TCP または Bluetooth RFCOMM 接続要求を受信した場合、ConnectionReceived イベントの発生時に Socket プロパティによって返されます。詳細については、StreamSocketListener のトピックを参照してください。

例外処理

StreamSocket クラスに対して非同期メソッドを呼び出す場合は、例外を処理するコードを記述する必要があります。 パラメーターの検証エラー、名前解決の失敗、およびネットワーク エラーによって例外が発生することがあります。ネットワーク エラー (接続の喪失、接続の失敗、サーバー障害など) による例外は、いつでも発生する可能性があります。 これらのエラーが発生すると、例外がスローされます。例外がアプリで処理されない場合は、ランタイムによってアプリ全体が終了することがあります。

Windows.Networking.Sockets 名前空間には、ソケットを使用するときにエラーを処理するための便利なヘルパー メソッドと列挙体があります。これは、アプリによって異なる特定のネットワーク例外の処理に役立つ場合があります。アプリは、パラメーター検証エラーの例外から HRESULT を使用して、例外の原因となったエラーの詳細情報を得ることもできます。

発生する可能性がある例外と例外を処理する方法の詳細については、「Handling exceptions in network apps (ネットワーク アプリでの例外の処理)」を参照してください。

Bluetooth および Wifi-Direct による StreamSocket の使用

独自のアプリケーションは、近距離内にある複数のデバイス間でネットワーク接続を確立するために、StreamSocket を使用することもできます。Windows.Networking.Proximity 名前空間のクラスでは、Bluetooth または Wi-Fi Direct を使用する StreamSocket による、近くのデバイスへのネットワーク接続がサポートされます。 Windows.Networking.Proximity 名前空間の PeerFinder および関連クラスにより、アプリでは近くのデバイス上のアプリの別のインスタンスを検出できます。 独自のアプリケーションは、タップ ジェスチャまたは参照を使用して、近くのピア アプリケーションへの StreamSocket 接続を作成できます。 詳細については、「近接通信とタップのサポート」、Windows.Networking.ProximityPeerFinderWindows.Devices.Bluetooth.Rfcomm、「近接通信のサンプル」および「Bluetooth Rfcomm Chat サンプル」を参照してください。

Windows Server 2012 での StreamSocket の使用

Windows Server 2012 および Windows Server 2012 R2 では、メディア ファンデーション機能が有効になっていない場合、Windows.Networking.Sockets 名前空間のほとんどのクラスを実装する Windows.Networking.dll は読み込まれません。その結果、Windows.Networking.Sockets 名前空間で StreamSocket と関連ソケット クラスを使用するアプリは、メディア ファンデーション機能が無効な場合、失敗します。Windows Server 2012 または Windows Server 2012 R2 は、メディア ファンデーション機能が無効の設定でインストールされます。

メディア ファンデーション機能は、 Windows Server 2012 または Windows Server 2012 R2 でサーバー マネージャーを使用するか、コマンド プロンプトに次のテキストまたはスクリプトを入力することによって有効にできます。

dism /online /enable-feature /featurename:ServerMediaFoundation

メディア ファンデーション機能が有効にされると、再起動するように求められます。コンピューターを再起動すると、ソケットと WebSocket を扱う Windows.Networking.Sockets 名前空間のクラスが期待どおりに機能します。

要件

最小限サポートされるクライアント

Windows 8 [Windows ストア アプリ, デスクトップ アプリ]

最小限サポートされるサーバー

Windows Server 2012 [Windows ストア アプリ, デスクトップ アプリ]

最小限サポートされる携帯電話

Windows Phone 8

名前空間

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

メタデータ

Windows.winmd

DLL

Windows.Networking.dll

Capabilities

internetClient
privateNetworkClientServer
ID_CAP_NETWORKING [Windows Phone]

参照

その他のリソース
ネットワーク サービスへの接続 (JavaScript および HTML を使用した Windows ストア アプリ)
ネットワーク サービスへの接続 (C#/VB/C++ および XAML を使用した Windows ストア アプリ)
ネットワーク アプリでの例外の処理
TLS/SSL のソケット接続のセキュリティを保護する方法 (JavaScript および HTML を使用した Windows ストア アプリ)
TLS/SSL のソケット接続のセキュリティを保護する方法 (C#/VB/C++ および XAML を使用した Windows ストア アプリ)
バックグラウンド接続のオプションを設定する方法
高度なソケット コントロールの使用方法 (JavaScript および HTML を使用する Windows ストア アプリ)
高度なソケット コントロールの使用方法 (C#/VB/C++ および XAML を使用する Windows ストア アプリ)
クイック スタート: ストリーム ソケットによるネットワーク リソースへの接続 (JavaScript と HTML を使った Windows Store アプリ)
クイック スタート: ストリーム ソケットによるネットワーク リソースへの接続 (C#/VB/C++ と XAML を使った Windows Store アプリ)
タップと近接のサポート
ネットワーク接続のトラブルシューティングおよびデバッグ
参照
ControlChannelTrigger
IClosable
Object
PeerFinder
SetSocketMediaStreamingMode
StreamSocketListener
StreamSocketListener.ConnectAsync
Windows.Devices.Bluetooth.Rfcomm
Windows.Networking.Proximity
サンプル
Bluetooth Rfcomm Chat サンプル
ControlChannelTrigger StreamSocket サンプル
近接通信のサンプル
StreamSocket のサンプル

 

 

表示:
© 2015 Microsoft