DatagramSocket Class

UDP ストリーム ソケットを使用してネットワーク通信をサポートします。

構文


var datagramSocket = new Windows.Networking.Sockets.DatagramSocket();

属性

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

メンバー

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

コンストラクター

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

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

 

イベント

DatagramSocketクラス にはこれらのイベントがあります。

イベント説明
MessageReceived An event that indicates that a message was received on the DatagramSocket object.

 

メソッド

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

メソッド説明
BindEndpointAsync Starts a bind operation on a DatagramSocket to a local hostname and a local service name.
BindServiceNameAsync(String) Starts a bind operation on a DatagramSocket to a local service name.
BindServiceNameAsync(String, NetworkAdapter) Starts a bind operation on a DatagramSocket to a local service name and specific network interface.
Close [C++, JavaScript]Closes the DatagramSocket object.
ConnectAsync(EndpointPair) Starts a connect operation on a DatagramSocket to a remote network destination specified as an EndpointPair object.
ConnectAsync(HostName, String) Starts a connect operation on a DatagramSocket to a remote destination specified by a remote hostname and a remote service name.
Dispose [C#, VB]Performs tasks associated with freeing, releasing, or resetting unmanaged resources.
GetEndpointPairsAsync(HostName, String) Gets a list of EndpointPair objects based on a remote hostname and remote service name that can be used to send datagrams to a remote network destination.
GetEndpointPairsAsync(HostName, String, HostNameSortOptions) Gets a list of EndpointPair objects based on a remote hostname and remote service name and the sort order to be used.
GetOutputStreamAsync(EndpointPair) Starts an operation to get an IOutputStream to a remote network destination specified by an EndpointPair object that can then be used to send network data.
GetOutputStreamAsync(HostName, String) Starts an operation to get an IOutputStream to a remote destination specified by a remote hostname and a remote service name that can then be used to send network data.
JoinMulticastGroup Joins a DatagramSocket object to a multicast group.

 

プロパティ

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

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

Control

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

Information

読み取り専用Gets socket information on the local and remote hostnames and local and remote service names for the DatagramSocket object.

OutputStream

読み取り専用Gets the output stream to write to the remote host.

 

解説

DatagramSocket クラスは、UDP データグラム ソケットを使用してネットワーク通信をサポートします。DatagramSocket オブジェクトは、UDP パケットを送信するクライアント アプリまたは受信 UDP データをリッスンするサーバー アプリのために使用できます。

DatagramSocket オブジェクトを使ってデータを受け取るには、いくつかの手順が必要です。独自のアプリケーションは最初に、MessageReceived イベントをイベント ハンドラーに割り当てます。次に、アプリケーションは BindEndpointAsync または BindServiceNameAsync メソッドを呼び出し、DatagramSocket をローカル サービス名または UDP ポートにバインドします。 次に、アプリケーションは ConnectAsync メソッドを呼び出します。接続操作の後にイベント ハンドラーと束縛操作が行われた場合、エラーが発生します。

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

  • DatagramSocket を作成します。
  • Control プロパティを使用して、DatagramSocketControl オブジェクトを取得し、高度なコントロールを設定します。この手順は通常ほとんどのアプリケーションに必要とされません。
  • MessageReceived イベントをイベント ハンドラーに割り当てます。
  • DatagramSocket をローカル サービス名または UDP ポートに束縛します。
  • ConnectAsync メソッドを呼び出して、DatagramSocket をリモートのエンドポイントにバインドします。アプリケーションが DatagramSocket オブジェクトのリモート エンドポイントからのデータの受信を望む場合、DatagramSocket が特定のリモート エンドポイントに束縛されるため、ConnectAsync メソッドを使用しないでください。代わりに BindServiceNameAsync または BindEndpointAsync メソッドを使用します。

また、このクラスは、マルチキャスト グループへの参加やマルチキャスト グループへの UDP パケットの送信に使用することもできます。

例外処理

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

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

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

Windows Server 2012 での DatagramSocket の使用

Windows Server 2012 および Windows Server 2012 R2 では、メディア ファンデーション機能が有効になっていない場合、Windows.Networking.Sockets 名前空間のほとんどのクラスを実装する Windows.Networking.dll は読み込まれません。その結果、Windows.Networking.Sockets 名前空間で DatagramSocket と関連ソケット クラスを使用するアプリは、メディア ファンデーション機能が無効な場合、失敗します。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 ストア アプリ)
ネットワーク アプリでの例外の処理
高度なソケット コントロールの使用方法 (JavaScript および HTML を使用する Windows ストア アプリ)
高度なソケット コントロールの使用方法 (C#/VB/C++ および XAML を使用する Windows ストア アプリ)
クイック スタート: データグラム ソケットによるネットワーク リソースへの接続 (JavaScript と HTML を使った Windows Store アプリ)
ネットワーク接続のトラブルシューティングおよびデバッグ
参照
DatagramSocketControl
DatagramSocketInformation
DatagramSocketMessageReceivedEventArgs
高度なソケット コントロールを使用する方法
IClosable
Object
SetSocketMediaStreamingMode

 

 

表示:
© 2014 Microsoft