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

DatagramSocket.ConnectAsync(HostName, String) | connectAsync(HostName, String) Method

DatagramSocket で、リモート ホスト名およびリモート サービス名によって指定されたリモート送信先に対して接続操作を開始します。

構文


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

パラメーター

remoteHostName

型: HostName

リモート ネットワーク宛先のホスト名または IP アドレス。

remoteServiceName

型: String [JavaScript] | System.String [.NET] | Platform::String [C++]

リモート ネットワーク宛先のサービス名または UDP ポート。

戻り値

型: IAsyncAction

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

解説

DatagramSocketConnectAsync メソッドは、OutputStream プロパティを使用するときに、データグラムが送信されるリモート ホスト名 (またはリモート IP アドレス) およびリモート サービス名 (または UDP ポート番号) の定義に使用されます。このメソッドでは、remoteHostName パラメーターに受け入れられるパケットのリモート IP アドレスも制限されます。

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

remoteHostName パラメーターには、リモート送信先のホスト名または IP アドレスを含めることができます。remoteServiceName パラメーターには、リモート送信先のサービス名または UDP アドレスを含めることができます。remoteHostName パラメーターにホスト名が含まれる場合、ConnectAsync メソッドは、IP アドレスにリモート ホスト名を解決します。 remoteServiceName パラメーターにサービス名が含まれる場合、ConnectAsync メソッドは、UDP ポート番号にリモート サービス名を解決します。

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

remoteHostName および remoteServiceName の各パラメーターが提供されている必要があります。remoteHostName が null の場合、または remoteServiceName が null か空の文字列の場合には、エラーが発生します。

リモート ネットワーク送信先に 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 アドレスでのみ動作します。remoteHostName パラメーターのマルチキャスト 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]

参照

DatagramSocket
ConnectAsync(EndpointPair)
HostName
OutputStream
DataWriter
IOutputStream

 

 

表示: