Language

StreamSocketListener クラス

定義

TCP ストリーム ソケットまたは RFCOMM Bluetoothを使用した受信ネットワーク接続のリッスンをサポートします。

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
継承
Object Platform::Object IInspectable StreamSocketListener
属性
実装

Windows の要件

要件 説明
デバイス ファミリ
Windows 10 (10.0.10240.0 で導入)
API contract
Windows.Foundation.UniversalApiContract (v1.0 で導入)
アプリの機能
bluetooth.rfcomm internetClientServer privateNetworkClientServer

注釈

StreamSocketListener クラスは、ストリーム ソケットを使用した受信ネットワーク接続のリッスンと接続の受け入れをサポートします。

操作の一般的な順序は次のとおりです。

  • StreamSocketListener を作成します。
  • Control プロパティを使用して StreamSocketListenerControl オブジェクトを取得し、必要なサービスのソケット品質を設定します。
  • ConnectionReceived イベントをイベント ハンドラーに割り当てます。
  • BindServiceNameAsync メソッドまたは BindEndpointAsync メソッドを呼び出して、ローカル TCP ポート番号またはサービス名にバインドします。 BLUETOOTH RFCOMM の場合、ローカル サービス名パラメーターは Bluetooth サービス ID です。
  • 接続が受信されたら、StreamSocketListenerConnectionReceivedEventArgs オブジェクトを使用して、StreamSocket オブジェクトが作成された Socket プロパティを取得します。
  • StreamSocket オブジェクトを使用して、データを送受信します。
  • Close メソッドを呼び出して受信ネットワーク接続のリッスンと受け入れを停止し、StreamSocketListener オブジェクトに関連付けられているすべてのアンマネージ リソースを解放します。 接続の受信時に作成された StreamSocket オブジェクトは影響を受けず、必要に応じて引き続き使用できます。

SocketProtectionLevel 列挙を使用すると、StreamSocketListener オブジェクトを使用してBluetooth経由でソケットをリッスンし、ソケットにバインドするときに、サーバーがクライアントとのプロトコル ネゴシエーションを制御できます。 StreamSocketListener オブジェクトがBluetoothで使用されている場合、サポートされている SocketProtectionLevel 値は PlainSocket、 BluetoothEncryptionAllowNullAuthentication、または BluetoothEncryptionWithAuthentication です。 StreamSocketListener オブジェクトを使用して、Bluetoothを使用しないソケットをリッスンしてバインドする場合、サポートされている SocketProtectionLevel 値 は PlainSocket のみです。

Bluetoothで StreamSocketListener を使用するには、アプリ マニフェストで bluetooth.rfcomm デバイス機能を設定する必要があります。 詳細については、「 Bluetoothのデバイス機能を指定する方法」を参照してください。

例外の処理

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

Windows。Networking.Sockets 名前空間には、ソケットを使用するときのエラー処理を簡略化する機能があります。 SocketError クラスの GetStatus メソッドは、HRESULT を例外から SocketErrorStatus 列挙値に変換できます。 これは、アプリで特定のネットワーク例外を異なる方法で処理する場合に役立ちます。 アプリでは、パラメーター検証エラーの例外から HRESULT を使用して、例外の原因となったエラーの詳細を確認することもできます。

考えられる例外と例外の処理方法の詳細については、「 ネットワーク アプリでの例外の処理」を参照してください。

Bluetoothでの StreamSocketListener の使用

アプリは StreamSocketListener を使用して、RFCOMM 経由でネットワーク接続Bluetoothリッスンできます。 Bluetooth経由のネットワーク接続では、IP ポートやサービス名ではなく、Bluetooth サービス ID が接続のエンドポイントとして使用されます。 Bluetoothをリッスンするために、アプリは、localServiceName パラメーターを Bluetooth サービス ID に設定して StreamSocketListener の BindServiceNameAsync メソッドのいずれかを呼び出します。

Bluetoothで StreamSocketListener と StreamSocket を使用するには、アプリ マニフェストで bluetooth.rfcomm デバイス機能を設定する必要があります。 詳細については、Windowsを参照してください。Devices.Bluetooth.Rfcomm 名前空間、Bluetoothのデバイス機能を指定する方法、および rfcomm チャットのBluetoothサンプル。

Windows Server 2012での StreamSocketListener の使用

Windows Server 2012および Windows Server 2012 R2 では、Windowsのほとんどのクラスを実装する Windows.Networking.dll。 Media Foundation 機能が有効になっていない限り、Networking.Sockets 名前空間の読み込みに失敗します。 その結果、streamSocketListener と関連するソケット クラスをWindowsで使用するアプリ。 Media Foundation 機能が無効になっている場合、Networking.Sockets 名前空間は失敗します。 Windows Server 2012または Windows Server 2012 R2 は、Media Foundation 機能を無効にしてインストールします。

Media Foundation 機能は、サーバー マネージャーを使用するか、コマンド プロンプトまたはスクリプトに次のテキストを入力して、Windows Server 2012または Windows Server 2012 R2 で有効にすることができます。

dism /online /enable-feature /featurename:ServerMediaFoundation Media Foundation 機能を有効にすると、ユーザーは再起動を求められます。 コンピューターが再起動されると、Windows内のソケットと WebSocket のクラス。Networking.Sockets 名前空間は想定どおりに動作します。

コンストラクター

Name 説明
StreamSocketListener()

新しい StreamSocketListener オブジェクトを作成します。

プロパティ

Name 説明
Control

StreamSocketListener オブジェクトのソケット コントロール データを取得します。

Information

StreamSocketListener オブジェクトのソケット情報を取得します。

メソッド

Name 説明
BindEndpointAsync(HostName, String)

StreamSocketListener でローカル ホスト名とローカル サービス名へのバインド操作を開始します。

BindServiceNameAsync(String, SocketProtectionLevel, NetworkAdapter)

StreamSocketListener に対するソケット バインド操作を、バインドされたソケットに設定する指定された SocketProtectionLevel を使用して、指定したネットワーク アダプター上のローカル サービス名に開始します。

BindServiceNameAsync(String, SocketProtectionLevel)

StreamSocketListener で、バインドされたソケットに設定する SocketProtectionLevel を指定したローカル サービス名へのバインド操作を開始します。

BindServiceNameAsync(String)

StreamSocketListener でローカル サービス名へのバインド操作を開始します。

CancelIOAsync()

StreamSocketListener オブジェクトに対する保留中の読み取りと書き込みを取り消します。

Close()

StreamSocketListener オブジェクトを閉じます。

Dispose()

アンマネージド リソースの解放、解放、またはリセットに関連付けられているアプリケーション定義のタスクを実行します。

EnableTransferOwnership(Guid, SocketActivityConnectedStandbyAction)

システムがコネクト スタンバイ状態にある間にこの StreamSocketListener のトラフィックが到着したときに、ソケット ブローカーによってアプリのバックグラウンド タスクをトリガーできるようにします。

EnableTransferOwnership(Guid)

アプリがアクティブでない間にこの StreamSocketListener のトラフィックが到着したときに、ソケット ブローカーによってアプリのバックグラウンド タスクをトリガーできるようにします。

TransferOwnership(String, SocketActivityContext)

StreamSocketListener の所有権をソケット ブローカー サービスに転送します。これにより、ソケット アクティビティが監視され、アクティビティがある場合はバックグラウンド タスクを通じてアプリに通知されます。

TransferOwnership(String)

StreamSocketListener の所有権をソケット ブローカー サービスに転送します。これにより、ソケット アクティビティが監視され、アクティビティがある場合はバックグラウンド タスクを通じてアプリに通知されます。

イベント

Name 説明
ConnectionReceived

StreamSocketListener オブジェクトで接続が受信されたことを示すイベント。

適用対象

関連項目