Share via


DatagramSocket.GetOutputStreamAsync メソッド

定義

オーバーロード

GetOutputStreamAsync(EndpointPair)

EndpointPair オブジェクトで指定されたリモート ネットワーク宛先に IOutputStream を取得する操作を開始し、それを使用してネットワーク データを送信できます。

GetOutputStreamAsync(HostName, String)

リモート ホスト名と、ネットワーク データの送信に使用できるリモート サービス名で指定されたリモート宛先に IOutputStream を取得する操作を開始します。

GetOutputStreamAsync(EndpointPair)

EndpointPair オブジェクトで指定されたリモート ネットワーク宛先に IOutputStream を取得する操作を開始し、それを使用してネットワーク データを送信できます。

public:
 virtual IAsyncOperation<IOutputStream ^> ^ GetOutputStreamAsync(EndpointPair ^ endpointPair) = GetOutputStreamAsync;
/// [Windows.Foundation.Metadata.Overload("GetOutputStreamWithEndpointPairAsync")]
/// [Windows.Foundation.Metadata.RemoteAsync]
IAsyncOperation<IOutputStream> GetOutputStreamAsync(EndpointPair const& endpointPair);
[Windows.Foundation.Metadata.Overload("GetOutputStreamWithEndpointPairAsync")]
[Windows.Foundation.Metadata.RemoteAsync]
public IAsyncOperation<IOutputStream> GetOutputStreamAsync(EndpointPair endpointPair);
function getOutputStreamAsync(endpointPair)
Public Function GetOutputStreamAsync (endpointPair As EndpointPair) As IAsyncOperation(Of IOutputStream)

パラメーター

endpointPair
EndpointPair

ローカル ホスト名またはローカル IP アドレス、ローカル サービス名またはローカル UDP ポート、リモート ホスト名またはリモート IP アドレス、リモート サービス名またはリモート UDP ポートを表すエンドポイント ペア。

戻り値

非同期操作を表す IOutputStream

属性

Windows の要件

アプリの機能
ID_CAP_NETWORKING [Windows Phone]

注釈

DatagramSocket の GetOutputStreamAsync(EndpointPair) メソッドは、EndpointPair オブジェクトによって指定されたリモート ネットワーク宛先に IOutputStream を取得する操作を開始するために使用されます。 その後、 IOutputStream を使用して、リモート宛先にデータを送信できます。

GetOutputStreamAsync(EndpointPair) メソッドは、正常に完了すると IOutputStream を返します。 そのストリームに書き込むと、指定されたリモート ホストとサービス名にデータグラムが送信されます。 IOutputStream は、ConnectAsync メソッドで指定されたリモート ホスト名とリモート サービス名に常に送信されます。

endpointPair パラメーターで渡される EndpointPairRemoteHostName プロパティには、リモート接続先のホスト名または IP アドレスを含めることができます。 endpointPair パラメーターで渡される EndpointPairRemoteServiceName プロパティには、リモート接続先のサービス名または UDP ポートを含めることができます。 RemoteHostName プロパティにホスト名が含まれている場合、GetOutputStreamAsync(EndpointPair) メソッドはリモート ホスト名の名前解決を行います。 RemoteServiceName プロパティにサービス名が含まれている場合、GetOutputStreamAsync メソッドを使用すると、リモート サービス名が UDP ポートに解決されます。

RemoteHostName プロパティと RemoteServiceName プロパティは、endpointPair パラメーターで渡される EndpointPair オブジェクトに指定する必要があります。 RemoteHostNamenull または RemoteServiceNamenull または空の文字列の場合は、エラーが発生します。

endpointPair パラメーターで渡された EndpointPair オブジェクトに null LocalHostName プロパティが含まれている場合、システムは使用するローカル IP アドレスを指定します。 endpointPair パラメーターで渡された EndpointPair オブジェクトに LocalServiceName プロパティの空の文字列が含まれている場合、システムは使用されるローカル UDP ポートを提供します。

DatagramSocket を使用して UDP データグラムをリモート ネットワークの宛先に送信するには、次の 2 つの方法があります。

GetOutputStreamAsync メソッドを使用すると、アプリは DatagramSocket オブジェクトを使用して UDP データグラムを複数のネットワーク宛先に送信できます。 GetOutputStreamAsync(EndpointPair) メソッドが呼び出されるたびに、アプリは endpointPair パラメーターで RemoteHostName メンバーと RemoteServiceName メンバーに異なる値を設定できます。

DatagramSocket オブジェクト上の任意のリモート エンドポイントからデータを受信するには、アプリで MessageReceived イベントをイベント ハンドラーに割り当ててから、BindEndpointAsync メソッドまたは BindServiceNameAsync メソッドを呼び出して、GetOutputStreamAsync メソッドを呼び出す前に DatagramSocket をローカル サービス名または UDP ポートにバインドする必要があります。 MessageReceived イベント ハンドラーは、バインド操作または接続操作の前に設定する必要があります。そうしないと、エラーが発生します。

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

  1. DatagramSocket を作成します。
  2. DatagramSocketControl オブジェクトを取得し、高度なコントロールを設定するには、Control プロパティを使用します。 この手順は通常、ほとんどのアプリでは必要ありません。
  3. MessageReceived イベントをイベント ハンドラーに割り当てます。
  4. GetOutputStreamAsync(EndpointPair) メソッドを呼び出して 、リモート エンドポイントにデータを送信する OutputStream を取得します。 GetOutputStreamAsync(EndpointPair) メソッドは、endpointPair パラメーターを使用して、DatagramSocket をローカル サービス名または UDP ポートとローカル ホスト名または IP アドレスにバインドします。
  5. MessageReceived イベント ハンドラーは、リモート エンドポイントからのメッセージが到着するたびに呼び出されます。 GetOutputStreamAsync メソッドは、アプリで BindEndpointAsync メソッドまたは BindServiceNameAsync メソッドを使用してローカル サービス名または UDP ポートをバインドする場合の ConnectAsync メソッドとも異なります。 GetOutputStreamAsync メソッドを使用すると、アプリはローカル サービス名または UDP ポートに送信された任意のリモート宛先からパケットを受信します。 ConnectAsync メソッドを使用すると、アプリは、パラメーターとして ConnectAsync メソッドに渡されたリモート宛先からのパケットのみを受信します。

BindServiceNameAsync(String, NetworkAdapter) メソッドを使用して、GetOutputStreamAsync(EndpointPair) メソッドを呼び出す前にネットワーク アダプターを指定できます。 指定したアダプターがバインド操作に使用されます。 BindServiceNameAsync(String, NetworkAdapter) を呼び出し、GetOutputStreamAsync(EndpointPair) に渡される endpointPair パラメーターで LocalHostName を指定した場合、GetOutputStreamAsync(EndpointPair) メソッドは失敗します。

こちらもご覧ください

適用対象

GetOutputStreamAsync(HostName, String)

リモート ホスト名と、ネットワーク データの送信に使用できるリモート サービス名で指定されたリモート宛先に IOutputStream を取得する操作を開始します。

public:
 virtual IAsyncOperation<IOutputStream ^> ^ GetOutputStreamAsync(HostName ^ remoteHostName, Platform::String ^ remoteServiceName) = GetOutputStreamAsync;
/// [Windows.Foundation.Metadata.Overload("GetOutputStreamAsync")]
/// [Windows.Foundation.Metadata.RemoteAsync]
IAsyncOperation<IOutputStream> GetOutputStreamAsync(HostName const& remoteHostName, winrt::hstring const& remoteServiceName);
[Windows.Foundation.Metadata.Overload("GetOutputStreamAsync")]
[Windows.Foundation.Metadata.RemoteAsync]
public IAsyncOperation<IOutputStream> GetOutputStreamAsync(HostName remoteHostName, string remoteServiceName);
function getOutputStreamAsync(remoteHostName, remoteServiceName)
Public Function GetOutputStreamAsync (remoteHostName As HostName, remoteServiceName As String) As IAsyncOperation(Of IOutputStream)

パラメーター

remoteHostName
HostName

リモート ホスト名またはリモート IP アドレス。

remoteServiceName
String

Platform::String

winrt::hstring

リモート サービス名またはリモート UDP ポート。

戻り値

非同期操作を表す IOutputStream

属性

Windows の要件

アプリの機能
ID_CAP_NETWORKING [Windows Phone]

注釈

DatagramSocket の [GetOutputStreamAsync(HostName, String) メソッドは、リモート ホスト名とリモート サービス名で指定されたリモート ネットワーク宛先に IOutputStream を取得する操作を開始するために使用されます。 その後、 IOutputStream を使用して、リモート宛先にデータを送信できます。

[GetOutputStreamAsync(HostName, String) メソッドは、正常に完了すると IOutputStream を返します。 そのストリームに書き込むと、指定されたリモート ホストとサービス名にデータグラムが送信されます。 IOutputStream は、ConnectAsync メソッドで指定されたリモート ホスト名とリモート サービス名に常に送信されます。

remoteHostName パラメーターには、リモート宛先のホスト名または IP アドレスを含めることができます。 remoteServiceName パラメーターには、リモート宛先のサービス名または UDP ポートを含めることができます。 remoteHostName パラメーターにホスト名が含まれている場合、[GetOutputStreamAsync(HostName, String) メソッドを使用すると、リモート ホスト名の名前解決が行われます。 remoteServiceName パラメーターにサービス名が含まれている場合は、[GetOutputStreamAsync(HostName, String) メソッドを使用すると、リモート サービス名が UDP ポートに解決されます。

remoteHostName パラメーターと remoteServiceName パラメーターを指定する必要があります。 remoteHostName パラメーターが null または remoteServiceName パラメーターが null または空の文字列の場合は、エラーが発生します。

DatagramSocket を使用して UDP データグラムをリモート ネットワークの宛先に送信するには、次の 2 つの方法があります。

  • GetOutputStreamAsync メソッドのいずれかを使用します。
  • ConnectAsync メソッドの 1 つを正常に呼び出した後、OutputStream プロパティを DataWriter オブジェクトに渡し、DataWriter オブジェクトのメソッドを使用してデータを送信します。

GetOutputStreamAsync メソッドを使用すると、アプリは DatagramSocket オブジェクトを使用して UDP データグラムを複数のネットワーク宛先に送信できます。 [GetOutputStreamAsync(HostName, String) メソッドが呼び出されるたびに、アプリは remoteHostName パラメーターと remoteServiceName パラメーターに異なる値を設定できます。

ConnectAsync メソッドを使用すると、アプリは DatagramSocket オブジェクトを使用して UDP データグラムを 1 つのネットワーク宛先に送信できます。

DatagramSocket オブジェクト上の任意のリモート エンドポイントからデータを受信するには、アプリで MessageReceived イベントをイベント ハンドラーに割り当ててから、BindEndpointAsync メソッドまたは BindServiceNameAsync メソッドを呼び出して、GetOutputStreamAsync メソッドを呼び出す前に DatagramSocket をローカル サービス名または UDP ポートにバインドする必要があります。 MessageReceived イベント ハンドラーは、バインド操作または接続操作の前に設定する必要があります。そうしないと、エラーが発生します。

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

  1. DatagramSocket を作成します。
  2. DatagramSocketControl オブジェクトを取得し、高度なコントロールを設定するには、Control プロパティを使用します。 この手順は通常、ほとんどのアプリでは必要ありません。
  3. MessageReceived イベントをイベント ハンドラーに割り当てます。
  4. DatagramSocket をローカル サービス名または UDP ポートにバインドします。
  5. MessageReceived イベント ハンドラーは、リモート エンドポイントからのメッセージが到着するたびに呼び出されます。
  6. GetOutputStreamAsync メソッドを呼び出して 、リモート エンドポイントにデータを送信する OutputStream を取得します。 MessageReceived イベント ハンドラーの DatagramSocketMessageReceivedEventArgs に含まれる情報を使用して、特定の受信メッセージを作成したリモート エンドポイントで OutputStream を確立できます。 GetOutputStreamAsync メソッドは、アプリで BindEndpointAsync メソッドまたは BindServiceNameAsync メソッドを使用してローカル サービス名または UDP ポートにバインドする場合、ConnectAsync メソッドとは異なります。 GetOutputStreamAsync メソッドを使用すると、アプリはローカル サービス名または UDP ポートに送信された任意のリモート宛先からパケットを受信します。 ConnectAsync メソッドを使用すると、アプリは、パラメーターとして ConnectAsync メソッドに渡されたリモート宛先からのパケットのみを受信します。

こちらもご覧ください

適用対象