Socket.ConnectAsync メソッド

定義

リモート ホストに接続する非同期要求を開始します。

オーバーロード

ConnectAsync(SocketType, ProtocolType, SocketAsyncEventArgs)

リモート ホストに接続する非同期要求を開始します。

ConnectAsync(IPAddress[], Int32, CancellationToken)

リモート ホストへの接続を確立します。

ConnectAsync(String, Int32, CancellationToken)

リモート ホストへの接続を確立します。

ConnectAsync(IPAddress, Int32, CancellationToken)

リモート ホストへの接続を確立します。

ConnectAsync(String, Int32)

リモート ホストへの接続を確立します。

ConnectAsync(IPAddress[], Int32)

リモート ホストへの接続を確立します。

ConnectAsync(IPAddress, Int32)

リモート ホストへの接続を確立します。

ConnectAsync(EndPoint, CancellationToken)

リモート ホストへの接続を確立します。

ConnectAsync(SocketAsyncEventArgs)

リモート ホストに接続する非同期要求を開始します。

ConnectAsync(EndPoint)

リモート ホストへの接続を確立します。

ConnectAsync(SocketType, ProtocolType, SocketAsyncEventArgs)

リモート ホストに接続する非同期要求を開始します。

public:
 static bool ConnectAsync(System::Net::Sockets::SocketType socketType, System::Net::Sockets::ProtocolType protocolType, System::Net::Sockets::SocketAsyncEventArgs ^ e);
public static bool ConnectAsync (System.Net.Sockets.SocketType socketType, System.Net.Sockets.ProtocolType protocolType, System.Net.Sockets.SocketAsyncEventArgs e);
static member ConnectAsync : System.Net.Sockets.SocketType * System.Net.Sockets.ProtocolType * System.Net.Sockets.SocketAsyncEventArgs -> bool
Public Shared Function ConnectAsync (socketType As SocketType, protocolType As ProtocolType, e As SocketAsyncEventArgs) As Boolean

パラメーター

socketType
SocketType

SocketType 値のいずれか 1 つ。

protocolType
ProtocolType

ProtocolType 値のいずれか 1 つ。

e
SocketAsyncEventArgs

この非同期ソケット操作に使用する SocketAsyncEventArgs オブジェクト。

戻り値

I/O 操作が保留中の場合は true。 操作の完了時に、e パラメーターの Completed イベントが発生します。

I/O 操作が同期的に完了した場合は false。 この場合、e パラメーターの Completed イベントは発生しません。メソッド呼び出しから制御が戻った直後に、パラメーターとして渡された e オブジェクトを調べて操作の結果を取得できます。

例外

引数が有効ではありません。 この例外は、複数のバッファーが指定されているときに、BufferList プロパティが null 値ではない場合に発生します。

e パラメーターおよび RemoteEndPoint を null 値にすることはできません。

Socket がリッスンしているか、e パラメーターで指定されている SocketAsyncEventArgs オブジェクトを使用してソケット操作が既に進行していました。

ソケットへのアクセスを試行しているときにエラーが発生しました。

ローカル エンドポイントと が RemoteEndPoint 同じアドレス ファミリではありません。

Socket が閉じられました。

呼び出し履歴の上位にある呼び出し元には、要求された操作に対するアクセス許可がありません。

注釈

接続指向プロトコルを使用している場合、M:System.Net.Sockets.Socket.ConnectAsync(System.Net.Sockets.SocketType,System.Net.Sockets.ProtocolType,System.Net.Sockets.SocketAsyncEventArgs) メソッドは、リモート ホストへの接続に対する非同期要求を開始します。 コネクションレス プロトコルを使用している場合は、 ConnectAsync パラメーターと protocolType パラメーターで指定された既定のリモート ホストをsocketType確立します。

完了を通知するには、EventHandler<SocketAsyncEventArgs> デリゲートを実装するコールバック メソッドを作成し、コールバックをイベントに SocketAsyncEventArgs.Completed アタッチする必要があります。

呼び出し元は、 プロパティをSocketAsyncEventArgs.RemoteEndPointIPEndPoint接続先のリモート ホストの に設定する必要があります。

呼び出し元は、コールバック メソッドで情報を取得できるように、 メソッドをConnectAsync呼び出す前に必要な任意のユーザー状態オブジェクトに プロパティを設定SocketAsyncEventArgs.UserTokenできます。 コールバックで 1 つのオブジェクトよりも多くの情報が必要な場合は、他の必須状態情報をメンバーとして保持する小さなクラスを作成できます。

UDP などのコネクションレス プロトコルを使用している場合は、データの送受信前に を呼び出す ConnectAsync 必要はありません。 と ReceiveFromAsync を使用SendToAsyncしてリモート ホストと通信できます。 を呼び出 ConnectAsyncすと、指定された既定値以外のアドレスから到着したデータグラムはすべて破棄されます。 既定のリモート ホストを変更する場合は、目的のエンドポイントで ConnectAsync メソッドをもう一度呼び出します。

既定のリモート ホストをブロードキャスト アドレスに設定する場合は、最初に を呼び出 SetSocketOption して、Broadcast を に設定する true必要があります。 これが行われなかった場合、 ConnectAsync メソッドは を SocketExceptionスローします。

オブジェクトの次のプロパティとイベントが System.Net.Sockets.SocketAsyncEventArgs 必要です。

必要に応じて、 メソッドが成功した後にソケットにアトミックに送信されるバッファーを ConnectAsync 指定できます。 この場合、プロパティは SocketAsyncEventArgs.Buffer 送信するデータを含むバッファーに設定する必要があり、 SocketAsyncEventArgs.Count プロパティはバッファーから送信するデータのバイト数に設定する必要があります。 接続が確立されると、このデータ バッファーが送信されます。

接続指向プロトコルを使用していて、 を呼び出す前に を呼び出BindConnectAsyncさない場合、基になるサービス プロバイダーは、最も適切なローカル ネットワーク アドレスとポート番号を割り当てます。

コネクションレス プロトコルを使用している場合、 メソッドまたは ReceiveAsync メソッドを呼び出すまで、サービス プロバイダーはローカル ネットワーク IP アドレスとポート番号をSendAsync割り当てません。

メソッドはConnectAsyncNotSupportedExceptionSocketAsyncEventArgs.RemoteEndPoint のアドレス ファミリが同じアドレス ファミリSocketでない場合に をスローします。

Note

このメソッドを呼び出すときに を SocketException 受け取った場合は、 プロパティを SocketException.ErrorCode 使用して特定のエラー コードを取得します。 このコードを取得したら、エラーの詳細な説明については 、Windows ソケット バージョン 2 API エラー コード のドキュメントを参照してください。

適用対象

ConnectAsync(IPAddress[], Int32, CancellationToken)

リモート ホストへの接続を確立します。

public:
 System::Threading::Tasks::ValueTask ConnectAsync(cli::array <System::Net::IPAddress ^> ^ addresses, int port, System::Threading::CancellationToken cancellationToken);
public System.Threading.Tasks.ValueTask ConnectAsync (System.Net.IPAddress[] addresses, int port, System.Threading.CancellationToken cancellationToken);
member this.ConnectAsync : System.Net.IPAddress[] * int * System.Threading.CancellationToken -> System.Threading.Tasks.ValueTask
Public Function ConnectAsync (addresses As IPAddress(), port As Integer, cancellationToken As CancellationToken) As ValueTask

パラメーター

addresses
IPAddress[]

リモート ホストへの接続を試みるために使用されるリモート ホストの IPAddresses の一覧。

port
Int32

接続先のリモート ホスト上のポート。

cancellationToken
CancellationToken

非同期操作を取り消すために使用できるキャンセル トークン。

戻り値

接続が確立されたときに完了する非同期タスク。

例外

addresses パラメーターを null 値にすることはできません。

パラメーターを空の addresses 配列にすることはできません。

portMinPort より小さい値です。

- または -

portMaxPort より大きくなっています。

Socketがリッスンしています。

ソケットが または InterNetworkV6 ファミリにInterNetworkありません。

ソケットへのアクセスを試行しているときにエラーが発生しました。

Socket が閉じられました。

呼び出し履歴の上位にある呼び出し元には、要求された操作に対するアクセス許可がありません。

キャンセル トークンが取り消されました。 この例外は、返されたタスクに格納されます。

注釈

このメソッドは、メソッドの同期例外がスローできる非使用例外をすべて返すタスクに格納します。 返されたタスクに例外が格納されている場合、その例外はタスクが待機されたときにスローされます。 などの ArgumentException使用例外は、引き続き同期的にスローされます。 格納されている例外については、 によって Connect(IPAddress[], Int32)スローされる例外に関するページを参照してください。

適用対象

ConnectAsync(String, Int32, CancellationToken)

リモート ホストへの接続を確立します。

public:
 System::Threading::Tasks::ValueTask ConnectAsync(System::String ^ host, int port, System::Threading::CancellationToken cancellationToken);
public System.Threading.Tasks.ValueTask ConnectAsync (string host, int port, System.Threading.CancellationToken cancellationToken);
member this.ConnectAsync : string * int * System.Threading.CancellationToken -> System.Threading.Tasks.ValueTask
Public Function ConnectAsync (host As String, port As Integer, cancellationToken As CancellationToken) As ValueTask

パラメーター

host
String

接続するリモート ホストのホスト名。

port
Int32

接続先のリモート ホスト上のポート。

cancellationToken
CancellationToken

非同期操作を取り消すために使用できるキャンセル トークン。

戻り値

接続が確立されたときに完了する非同期タスク。

例外

host パラメーターを null 値にすることはできません。

portMinPort より小さい値です。

- または -

portMaxPort より大きくなっています。

Socketがリッスンしています。

ソケットが または InterNetworkV6 ファミリにInterNetworkありません。

ソケットへのアクセスを試行しているときにエラーが発生しました。

Socket が閉じられました。

呼び出し履歴の上位にある呼び出し元には、要求された操作に対するアクセス許可がありません。

キャンセル トークンが取り消されました。 この例外は、返されたタスクに格納されます。

注釈

このメソッドは、メソッドの同期例外がスローできる非使用例外をすべて返すタスクに格納します。 返されたタスクに例外が格納されている場合、その例外はタスクが待機されたときにスローされます。 などの ArgumentException使用例外は、引き続き同期的にスローされます。 格納されている例外については、 によって Connect(String, Int32)スローされる例外に関するページを参照してください。

適用対象

ConnectAsync(IPAddress, Int32, CancellationToken)

リモート ホストへの接続を確立します。

public:
 System::Threading::Tasks::ValueTask ConnectAsync(System::Net::IPAddress ^ address, int port, System::Threading::CancellationToken cancellationToken);
public System.Threading.Tasks.ValueTask ConnectAsync (System.Net.IPAddress address, int port, System.Threading.CancellationToken cancellationToken);
member this.ConnectAsync : System.Net.IPAddress * int * System.Threading.CancellationToken -> System.Threading.Tasks.ValueTask
Public Function ConnectAsync (address As IPAddress, port As Integer, cancellationToken As CancellationToken) As ValueTask

パラメーター

address
IPAddress

接続するリモート ホストの IPAddress。

port
Int32

接続先のリモート ホスト上のポート。

cancellationToken
CancellationToken

非同期操作を取り消すために使用できるキャンセル トークン。

戻り値

接続が確立されたときに完了する非同期タスク。

例外

address パラメーターを null 値にすることはできません。

portMinPort より小さい値です。

- または -

portMaxPort より大きくなっています。

Socketがリッスンしています。

ソケットへのアクセスを試行しているときにエラーが発生しました。

Socket が閉じられました。

呼び出し履歴の上位にある呼び出し元には、要求された操作に対するアクセス許可がありません。

キャンセル トークンが取り消されました。 この例外は、返されたタスクに格納されます。

注釈

このメソッドは、メソッドの同期的な例外がスローできる非使用例外をすべて返すタスクに格納します。 返されたタスクに例外が格納されている場合、その例外はタスクの待機時にスローされます。 などの ArgumentException使用例外は、引き続き同期的にスローされます。 格納されている例外については、 によって Connect(IPAddress, Int32)スローされる例外に関するページを参照してください。

適用対象

ConnectAsync(String, Int32)

リモート ホストへの接続を確立します。

public:
 System::Threading::Tasks::Task ^ ConnectAsync(System::String ^ host, int port);
public System.Threading.Tasks.Task ConnectAsync (string host, int port);
member this.ConnectAsync : string * int -> System.Threading.Tasks.Task
Public Function ConnectAsync (host As String, port As Integer) As Task

パラメーター

host
String

接続するリモート ホストのホスト名。

port
Int32

接続先のリモート ホスト上のポート。

戻り値

接続が確立されたときに完了する非同期タスク。

例外

host パラメーターを null 値にすることはできません。

portMinPort より小さい値です。

- または -

portMaxPort より大きくなっています。

Socketがリッスンしています。

ソケットが または InterNetworkV6 ファミリにInterNetworkありません。

ソケットへのアクセスを試行しているときにエラーが発生しました。

Socket が閉じられました。

呼び出し履歴の上位にある呼び出し元には、要求された操作に対するアクセス許可がありません。

注釈

このメソッドは、メソッドの同期的な例外がスローできる非使用例外をすべて返すタスクに格納します。 返されたタスクに例外が格納されている場合、その例外はタスクの待機時にスローされます。 などの ArgumentException使用例外は、引き続き同期的にスローされます。 格納されている例外については、 によって Connect(String, Int32)スローされる例外に関するページを参照してください。

適用対象

ConnectAsync(IPAddress[], Int32)

リモート ホストへの接続を確立します。

public:
 System::Threading::Tasks::Task ^ ConnectAsync(cli::array <System::Net::IPAddress ^> ^ addresses, int port);
public System.Threading.Tasks.Task ConnectAsync (System.Net.IPAddress[] addresses, int port);
member this.ConnectAsync : System.Net.IPAddress[] * int -> System.Threading.Tasks.Task
Public Function ConnectAsync (addresses As IPAddress(), port As Integer) As Task

パラメーター

addresses
IPAddress[]

リモート ホストへの接続を試みるために使用されるリモート ホストの IPAddresses の一覧。

port
Int32

接続先のリモート ホスト上のポート。

戻り値

接続が確立されたときに完了する非同期タスク。

例外

addresses パラメーターを null 値にすることはできません。

パラメーターを空の addresses 配列にすることはできません。

portMinPort より小さい値です。

- または -

portMaxPort より大きくなっています。

Socketがリッスンしています。

ソケットが または InterNetworkV6 ファミリにInterNetworkありません。

ソケットへのアクセスを試行しているときにエラーが発生しました。

Socket が閉じられました。

呼び出し履歴の上位にある呼び出し元には、要求された操作に対するアクセス許可がありません。

注釈

このメソッドは、メソッドの同期的な例外がスローできる非使用例外をすべて返すタスクに格納します。 返されたタスクに例外が格納されている場合、その例外はタスクの待機時にスローされます。 などの ArgumentException使用例外は、引き続き同期的にスローされます。 格納されている例外については、 によって Connect(IPAddress[], Int32)スローされる例外に関するページを参照してください。

適用対象

ConnectAsync(IPAddress, Int32)

リモート ホストへの接続を確立します。

public:
 System::Threading::Tasks::Task ^ ConnectAsync(System::Net::IPAddress ^ address, int port);
public System.Threading.Tasks.Task ConnectAsync (System.Net.IPAddress address, int port);
member this.ConnectAsync : System.Net.IPAddress * int -> System.Threading.Tasks.Task
Public Function ConnectAsync (address As IPAddress, port As Integer) As Task

パラメーター

address
IPAddress

接続するリモート ホストの IPAddress。

port
Int32

接続先のリモート ホスト上のポート。

戻り値

接続が確立されたときに完了する非同期タスク。

例外

address パラメーターを null 値にすることはできません。

portMinPort より小さい値です。

- または -

portMaxPort より大きくなっています。

Socketがリッスンしています。

ソケットが または InterNetworkV6 ファミリにInterNetworkありません。

ソケットへのアクセスを試行しているときにエラーが発生しました。

Socket が閉じられました。

呼び出し履歴の上位にある呼び出し元には、要求された操作に対するアクセス許可がありません。

注釈

このメソッドは、メソッドの同期的な例外がスローできる非使用例外をすべて返すタスクに格納します。 返されたタスクに例外が格納されている場合、その例外はタスクの待機時にスローされます。 などの ArgumentException使用例外は、引き続き同期的にスローされます。 格納されている例外については、 によって Connect(IPAddress, Int32)スローされる例外に関するページを参照してください。

適用対象

ConnectAsync(EndPoint, CancellationToken)

リモート ホストへの接続を確立します。

public:
 System::Threading::Tasks::ValueTask ConnectAsync(System::Net::EndPoint ^ remoteEP, System::Threading::CancellationToken cancellationToken);
public System.Threading.Tasks.ValueTask ConnectAsync (System.Net.EndPoint remoteEP, System.Threading.CancellationToken cancellationToken);
member this.ConnectAsync : System.Net.EndPoint * System.Threading.CancellationToken -> System.Threading.Tasks.ValueTask
Public Function ConnectAsync (remoteEP As EndPoint, cancellationToken As CancellationToken) As ValueTask

パラメーター

remoteEP
EndPoint

接続先エンドポイント。

cancellationToken
CancellationToken

非同期操作を取り消すために使用できるキャンセル トークン。

戻り値

接続が確立されたときに完了する非同期タスク。

例外

remoteEP パラメーターを null 値にすることはできません。

Socketがリッスンしています。

ソケットへのアクセスを試行しているときにエラーが発生しました。

ローカル エンドポイントと パラメーターが remoteEP 同じアドレス ファミリではありません。

Socket が閉じられました。

呼び出し履歴の上位にある呼び出し元には、要求された操作に対するアクセス許可がありません。

キャンセル トークンが取り消されました。 この例外は、返されたタスクに格納されます。

注釈

このメソッドは、メソッドの同期的な例外がスローできる非使用例外をすべて返すタスクに格納します。 返されたタスクに例外が格納されている場合、その例外はタスクの待機時にスローされます。 などの ArgumentException使用例外は、引き続き同期的にスローされます。 格納されている例外については、 によって Connect(EndPoint)スローされる例外に関するページを参照してください。

適用対象

ConnectAsync(SocketAsyncEventArgs)

リモート ホストに接続する非同期要求を開始します。

public:
 bool ConnectAsync(System::Net::Sockets::SocketAsyncEventArgs ^ e);
public bool ConnectAsync (System.Net.Sockets.SocketAsyncEventArgs e);
member this.ConnectAsync : System.Net.Sockets.SocketAsyncEventArgs -> bool
Public Function ConnectAsync (e As SocketAsyncEventArgs) As Boolean

パラメーター

e
SocketAsyncEventArgs

この非同期ソケット操作に使用する SocketAsyncEventArgs オブジェクト。

戻り値

I/O 操作が保留中の場合は true。 操作の完了時に、e パラメーターの Completed イベントが発生します。

I/O 操作が同期的に完了した場合は false。 この場合、e パラメーターの Completed イベントは発生しません。メソッド呼び出しから制御が戻った直後に、パラメーターとして渡された e オブジェクトを調べて操作の結果を取得できます。

例外

引数が有効ではありません。 この例外は、複数のバッファーが指定されているときに、BufferList プロパティが null 値ではない場合に発生します。

e パラメーターおよび RemoteEndPoint を null 値にすることはできません。

Socket がリッスンしているか、e パラメーターで指定されている SocketAsyncEventArgs オブジェクトを使用してソケット操作が既に進行していました。

ソケットへのアクセスを試行しているときにエラーが発生しました。

ローカル エンドポイントと が RemoteEndPoint 同じアドレス ファミリではありません。

Socket が閉じられました。

呼び出し履歴の上位にある呼び出し元には、要求された操作に対するアクセス許可がありません。

注釈

接続指向プロトコルを使用している場合、 ConnectAsync メソッドはリモート ホストへの接続に対する非同期要求を開始します。 コネクションレス プロトコルを使用している場合は、 ConnectAsync 既定のリモート ホストを確立します。

完了を通知するには、EventHandler<SocketAsyncEventArgs> デリゲートを実装するコールバック メソッドを作成し、コールバックをイベントにアタッチする SocketAsyncEventArgs.Completed 必要があります。

呼び出し元は、 プロパティをSocketAsyncEventArgs.RemoteEndPointIPEndPoint接続先のリモート ホストの に設定する必要があります。

呼び出し元は、コールバック メソッドで情報を取得できるように、メソッドをConnectAsync呼び出す前に必要な任意のユーザー状態オブジェクトに プロパティを設定SocketAsyncEventArgs.UserTokenできます。 コールバックに 1 つのオブジェクトよりも多くの情報が必要な場合は、他の必要な状態情報をメンバーとして保持する小さなクラスを作成できます。

UDP などのコネクションレス プロトコルを使用している場合は、データの送受信前に を呼び出 ConnectAsync す必要はありません。 と ReceiveFromAsync を使用SendToAsyncして、リモート ホストと通信できます。 を呼び出 ConnectAsyncすと、指定された既定値以外のアドレスから到着したデータグラムは破棄されます。 既定のリモート ホストを変更する場合は、目的のエンドポイントで メソッドをもう ConnectAsync 一度呼び出します。

既定のリモート ホストをブロードキャスト アドレスに設定する場合は、最初に を呼び出 SetSocketOption し、Broadcast を に設定する true必要があります。 これが行われなかった場合、 ConnectAsync メソッドは を SocketExceptionスローします。

オブジェクトの次のプロパティとイベントが System.Net.Sockets.SocketAsyncEventArgs 必要です。

必要に応じて、メソッドが成功した後にソケットでアトミックに送信されるバッファーを ConnectAsync 指定できます。 この場合、プロパティは SocketAsyncEventArgs.Buffer 送信するデータを含むバッファーに設定する必要があり、 SocketAsyncEventArgs.Count プロパティはバッファーから送信するデータのバイト数に設定する必要があります。 接続が確立されると、このデータ バッファーが送信されます。

接続指向プロトコルを使用していて、 を呼び出す前に を呼び出BindConnectAsyncさない場合、基になるサービス プロバイダーは、最も適切なローカル ネットワーク アドレスとポート番号を割り当てます。

コネクションレス プロトコルを使用している場合、 メソッドまたは ReceiveAsync メソッドを呼び出すまで、サービス プロバイダーはローカル ネットワーク IP アドレスとポート番号をSendAsync割り当てません。

メソッドはConnectAsyncNotSupportedExceptionSocketAsyncEventArgs.RemoteEndPoint のアドレス ファミリが同じアドレス ファミリSocketでない場合に をスローします。

注意

このメソッドを呼び出すときに を SocketException 受け取った場合は、 プロパティを SocketException.ErrorCode 使用して特定のエラー コードを取得します。 このコードを取得したら、エラーの詳細な説明については、 Windows ソケット バージョン 2 API エラー コード のドキュメントを参照してください。

こちらもご覧ください

適用対象

ConnectAsync(EndPoint)

リモート ホストへの接続を確立します。

public:
 System::Threading::Tasks::Task ^ ConnectAsync(System::Net::EndPoint ^ remoteEP);
public System.Threading.Tasks.Task ConnectAsync (System.Net.EndPoint remoteEP);
member this.ConnectAsync : System.Net.EndPoint -> System.Threading.Tasks.Task
Public Function ConnectAsync (remoteEP As EndPoint) As Task

パラメーター

remoteEP
EndPoint

接続先エンドポイント。

戻り値

接続が確立されたときに完了する非同期タスク。

例外

remoteEP パラメーターを null 値にすることはできません。

Socketがリッスンしています。

ソケットへのアクセスを試行しているときにエラーが発生しました。

ローカル エンドポイントと パラメーターが remoteEP 同じアドレス ファミリではありません。

Socket が閉じられました。

呼び出し履歴の上位にある呼び出し元には、要求された操作に対するアクセス許可がありません。

注釈

このメソッドは、メソッドの同期的な例外がスローできる非使用例外をすべて返すタスクに格納します。 返されたタスクに例外が格納されている場合、その例外はタスクの待機時にスローされます。 などの ArgumentException使用例外は、引き続き同期的にスローされます。 格納されている例外については、 によって Connect(EndPoint)スローされる例外に関するページを参照してください。

適用対象