情報
要求されたトピックは次のとおりです。しかし、このトピックはこのライブラリには含まれていません。
このトピックはまだ評価されていません - このトピックを評価する

DatagramSocket.ConnectAsync(EndpointPair) | connectAsync(EndpointPair) Method

DatagramSocket で、EndpointPair オブジェクトとして指定されたリモート ネットワーク送信先に対して接続操作を開始します。

構文


datagramSocket.connectAsync(endpointPair).done( /* 成功ハンドラーとエラー ハンドラー */ );

パラメーター

endpointPair

型: EndpointPair

ローカル ホスト名または IP アドレス、ローカル サービス名または UDP ポート、リモート ホスト名またはリモート IP アドレス、リモート ネットワーク宛先のリモート サービス名またはリモート UDP ポートを指定する EndpointPair オブジェクト。

戻り値

型: IAsyncAction

DatagramSocket のオブジェクトの非同期接続操作です。

解説

OutputStream プロパティを使用するときに、DatagramSocket のこの ConnectAsync(EndPointPair) メソッドが、データグラムが送信されるローカルおよびリモート エンドポイントの定義に使用されます。このメソッドでは、endpointPair パラメーターのリモート ホスト名として受け入れられるパケットのリモート IP アドレスも制限されます。

DatagramSocketOutputStream プロパティで WriteAsync メソッドを呼び出すか、または OutputStreamDataWriter オブジェクトに渡して DataWriter オブジェクトのメソッドを呼び出すことで、アプリケーションがリモート ネットワークの送信先に後でネットワーク データを送信することができます。

endpointPair パラメーターに渡される EndpointPairRemoteHostName プロパティには、リモート送信先のホスト名または IP アドレスを含めることができます。endpointPair パラメーターに渡される EndpointPairRemoteServiceName プロパティには、リモート送信先のサービス名または UDP ポートを含めることができます。RemoteHostName プロパティにホスト名が含まれる場合、ConnectAsync(EndPointPair) メソッドは、IP アドレスにリモート ホスト名を解決します。 EndpointPairRemoteServiceName プロパティにサービス名が含まれる場合、ConnectAsync(EndPointPair) メソッドは、UDP ポート番号にリモート サービス名を解決します。

既定では、認識されるサービス名の文字列は、ローカル コンピューターのファイル %windir%\System32\drivers\etc\services にリストされているサービス名です。他のサービス名の値の場合、DNS SRV レコードについてドメイン ネーム システムの (DNS) サーバーへのネーム サービスのクエリが実行されます。

RemoteHostName プロパティおよび RemoteServiceName プロパティが指定される必要があります。RemoteHostName が null の場合、または RemoteServiceName が null か空の文字列の場合には、エラーが発生します。

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

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

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

  • GetOutputStreamAsync メソッドのいずれかを使用。
  • OutputStream プロパティを使用して ConnectAsync メソッドが正常に呼び出された後。

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

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

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

  • DatagramSocket を作成します。
  • MessageReceived イベントをイベント ハンドラーに割り当てます。
  • DatagramSocket をローカル サービス名または UDP ポートに束縛します。
  • ConnectAsync メソッドを呼び出して、リモートのエンドポイントに接続します。

また、GetOutputStreamAsync メソッドは、アプリケーションが BindEndpointAsync メソッドまたは BindServiceNameAsync メソッドを使用してローカル サービス名または UDP ポートを束縛する場合、ConnectAsync メソッドと異なります。GetOutputStreamAsync メソッドを使用すると、アプリケーションは、ローカル サービス名または UDP ポートに送信されたリモートの宛先からパケットを受信します。 ConnectAsync メソッドを使用すると、アプリケーションは、ConnectAsync メソッドにパラメーターとして渡されたリモートの宛先からのみパケットを受信します。

ConnectAsync メソッドは、ユニキャスト IP アドレスでのみ動作します。endpointPair パラメーターで設定したリモート IP アドレス内のマルチキャスト IP アドレスを使用して、ConnectAsync メソッドを呼び出そうとすると、非同期操作で完了時にエラーが発生します。 SocketError.GetStatus メソッドにエラーを渡すと、SocketErrorStatus.HostNotFound 値が返されます。

要件

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

Windows 8

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

Windows Server 2012

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

Windows Phone 8

名前空間

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

メタデータ

Windows.winmd

DLL

Windows.Networking.dll

Capabilities

internetClientServer
privateNetworkClientServer
ID_CAP_NETWORKING [Windows Phone]

参照

ConnectAsync(HostName, String)
DatagramSocket
EndpointPair
OutputStream
DataWriter
IOutputStream

 

 

この情報は役に立ちましたか。
(残り 1500 文字)
フィードバックをいただき、ありがとうございました
表示:
© 2014 Microsoft. All rights reserved.