Socket.ConnectAsync Socket.ConnectAsync Socket.ConnectAsync Socket.ConnectAsync Method

定義

リモート ホストに接続する非同期要求を開始します。Begins an asynchronous request for a connection to a remote host.

オーバーロード

ConnectAsync(SocketAsyncEventArgs) ConnectAsync(SocketAsyncEventArgs) ConnectAsync(SocketAsyncEventArgs) ConnectAsync(SocketAsyncEventArgs)

リモート ホストに接続する非同期要求を開始します。Begins an asynchronous request for a connection to a remote host.

ConnectAsync(SocketType, ProtocolType, SocketAsyncEventArgs) ConnectAsync(SocketType, ProtocolType, SocketAsyncEventArgs) ConnectAsync(SocketType, ProtocolType, SocketAsyncEventArgs)

リモート ホストに接続する非同期要求を開始します。Begins an asynchronous request for a connection to a remote host.

ConnectAsync(SocketAsyncEventArgs) ConnectAsync(SocketAsyncEventArgs) ConnectAsync(SocketAsyncEventArgs) ConnectAsync(SocketAsyncEventArgs)

リモート ホストに接続する非同期要求を開始します。Begins an asynchronous request for a connection to a remote host.

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 SocketAsyncEventArgs SocketAsyncEventArgs

この非同期ソケット操作に使用する SocketAsyncEventArgs オブジェクト。The SocketAsyncEventArgs object to use for this asynchronous socket operation.

戻り値

I/O 操作が保留中の場合は truetrue if the I/O operation is pending. 操作の完了時に、e パラメーターの Completed イベントが発生します。The Completed event on the e parameter will be raised upon completion of the operation.

I/O 操作が同期的に完了した場合は falsefalse if the I/O operation completed synchronously. この場合、e パラメーターの Completed イベントは発生しません。メソッド呼び出しから制御が戻った直後に、パラメーターとして渡された e オブジェクトを調べて操作の結果を取得できます。In this case, The Completed event on the e parameter will not be raised and the e object passed as a parameter may be examined immediately after the method call returns to retrieve the result of the operation.

例外

引数が有効ではありません。An argument is not valid. この例外は、複数のバッファーが指定されているときに、BufferList プロパティが null 値ではない場合に発生します。This exception occurs if multiple buffers are specified, the BufferList property is not null.

e パラメーターおよび RemoteEndPoint を null 値にすることはできません。The e parameter cannot be null and the RemoteEndPoint cannot be null.

Socket がリッスンしているか、e パラメーターで指定されている SocketAsyncEventArgs オブジェクトを使用してソケット操作が既に進行していました。The Socket is listening or a socket operation was already in progress using the SocketAsyncEventArgs object specified in the e parameter.

ソケットへのアクセスを試行しているときにエラーが発生しました。An error occurred when attempting to access the socket.

このメソッドには Windows XP 以降が必要です。Windows XP or later is required for this method. この例外は、ローカル エンドポイントと RemoteEndPoint が同じアドレス ファミリではない場合にも発生します。This exception also occurs if the local endpoint and the RemoteEndPoint are not the same address family.

コール スタックの上位にある呼び出し元が、要求された操作のアクセス許可を保持していません。A caller higher in the call stack does not have permission for the requested operation.

注釈

接続指向のプロトコルを使用している場合、ConnectAsyncメソッドは、リモート ホストへの接続の非同期要求を開始します。If you are using a connection-oriented protocol, the ConnectAsync method starts an asynchronous request for a connection to the remote host. コネクションレスのプロトコルを使用している場合ConnectAsync既定のリモート ホストを確立します。If you are using a connectionless protocol, ConnectAsync establishes a default remote host.

完了の通知、イベント ハンドラーを実装するコールバック メソッドを作成する必要があります<SocketAsyncEventArgs > デリゲートおよびコールバックをアタッチ、SocketAsyncEventArgs.Completedイベント。To be notified of completion, you must create a callback method that implements the EventHandler<SocketAsyncEventArgs> delegate and attach the callback to the SocketAsyncEventArgs.Completed event.

呼び出し元を設定する必要があります、SocketAsyncEventArgs.RemoteEndPointプロパティをIPEndPointリモート ホストに接続するのです。The caller must set the SocketAsyncEventArgs.RemoteEndPoint property to the IPEndPoint of the remote host to connect to.

呼び出し元の設定、SocketAsyncEventArgs.UserTokenを呼び出す前に必要なすべてのユーザー状態オブジェクトのプロパティ、ConnectAsyncメソッド情報をコールバック メソッドで取得できるようにします。The caller may set the SocketAsyncEventArgs.UserToken property to any user state object desired before calling the ConnectAsync method, so that the information will be retrievable in the callback method. コールバックは、1 つのオブジェクトより多くの情報を必要とする場合は、メンバーとして他の必要な状態情報を保持する小さなクラスを作成できます。If the callback needs more information than a single object, a small class can be created to hold the other required state information as members.

UDP などのコネクションレスのプロトコルを使用している場合は呼び出しする必要はありませんConnectAsyncデータを送受信する前にします。If you are using a connectionless protocol such as UDP, you do not have to call ConnectAsync before sending and receiving data. 使用することができますSendToAsyncReceiveFromAsyncリモート ホストと通信します。You can use SendToAsync and ReceiveFromAsync to communicate with a remote host. 呼び出す場合ConnectAsync、指定した既定以外のアドレスから配信される任意のデータグラムは破棄されます。If you do call ConnectAsync, any datagrams that arrive from an address other than the specified default will be discarded. 既定のリモート ホストを変更する場合は、呼び出し、ConnectAsyncメソッドを使用して、目的のエンドポイント。If you want to change the default remote host, call the ConnectAsync method again with the desired endpoint.

最初に呼び出す必要がある場合は、ブロードキャスト アドレスに既定のリモート ホストを設定するには、SetSocketOptiontrueします。If you wish to set the default remote host to a broadcast address, you must first call SetSocketOption and set Broadcast to true. これが行われていない場合、ConnectAsyncメソッドがスローされます、SocketExceptionします。If this is not done, the ConnectAsync method will throw a SocketException.

次のプロパティとイベントをSystem.Net.Sockets.SocketAsyncEventArgsオブジェクトが必要です。The following properties and events on the System.Net.Sockets.SocketAsyncEventArgs object are required:

後にソケットをアトミックに送信されますバッファーを指定できます必要に応じて、ConnectAsyncメソッドが成功しました。Optionally, a buffer may be provided which will atomically be sent on the socket after the ConnectAsync method succeeds. ここで、SocketAsyncEventArgs.Bufferプロパティを送信するデータを含むバッファーに設定する必要があります、SocketAsyncEventArgs.Countプロパティは、バッファーから送信するデータのバイト数に設定する必要があります。In this case, the SocketAsyncEventArgs.Buffer property needs to be set to the buffer containing the data to send and the SocketAsyncEventArgs.Count property needs to be set to the number of bytes of data to send from the buffer. 接続が確立されると、このバッファーのデータが送信されます。Once a connection is established, this buffer of data is sent.

接続指向プロトコルを使用しているし、呼び出さないかどうかBind呼び出す前にConnectAsync、基になるサービス プロバイダーが最も適切なローカル ネットワーク アドレスとポート番号を割り当てられます。If you are using a connection-oriented protocol and do not call Bind before calling ConnectAsync, the underlying service provider will assign the most appropriate local network address and port number.

コネクションレスのプロトコルを使用している場合、サービス プロバイダーを割り当てませんローカル ネットワークの IP アドレスとポート番号を呼び出すまで、SendAsyncまたはReceiveAsyncメソッド。If you are using a connectionless protocol, the service provider will not assign a local network IP address and port number until you call the SendAsync or ReceiveAsync methods.

ConnectAsyncメソッドがスローされますNotSupportedException場合のアドレス ファミリ、 SocketSocketAsyncEventArgs.RemoteEndPoint同じアドレス ファミリではありません。The ConnectAsync method throws NotSupportedException if the address family of the Socket and the SocketAsyncEventArgs.RemoteEndPoint are not the same address family.

注意

表示された場合、SocketException使用して、このメソッドを呼び出すときに、SocketException.ErrorCode特定のエラー コードを取得するプロパティ。If you receive a SocketException when calling this method, use the SocketException.ErrorCode property to obtain the specific error code. このコードを取得した後を参照してください、 Windows Sockets version 2 API エラー コードエラーの詳細な説明のドキュメント。After you have obtained this code, refer to the Windows Sockets version 2 API error code documentation for a detailed description of the error.

こちらもご覧ください

ConnectAsync(SocketType, ProtocolType, SocketAsyncEventArgs) ConnectAsync(SocketType, ProtocolType, SocketAsyncEventArgs) ConnectAsync(SocketType, ProtocolType, SocketAsyncEventArgs)

リモート ホストに接続する非同期要求を開始します。Begins an asynchronous request for a connection to a remote host.

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

パラメーター

socketType
SocketType SocketType SocketType SocketType

SocketType 値のいずれか。One of the SocketType values.

protocolType
ProtocolType ProtocolType ProtocolType ProtocolType

ProtocolType 値のいずれか。One of the ProtocolType values.

e
SocketAsyncEventArgs SocketAsyncEventArgs SocketAsyncEventArgs SocketAsyncEventArgs

この非同期ソケット操作に使用する SocketAsyncEventArgs オブジェクト。The SocketAsyncEventArgs object to use for this asynchronous socket operation.

戻り値

I/O 操作が保留中の場合は truetrue if the I/O operation is pending. 操作の完了時に、e パラメーターの Completed イベントが発生します。The Completed event on the e parameter will be raised upon completion of the operation.

I/O 操作が同期的に完了した場合は falsefalse if the I/O operation completed synchronously. この場合、e パラメーターの Completed イベントは発生しません。メソッド呼び出しから制御が戻った直後に、パラメーターとして渡された e オブジェクトを調べて操作の結果を取得できます。In this case, The Completed event on the e parameter will not be raised and the e object passed as a parameter may be examined immediately after the method call returns to retrieve the result of the operation.

例外

引数が有効ではありません。An argument is not valid. この例外は、複数のバッファーが指定されているときに、BufferList プロパティが null 値ではない場合に発生します。This exception occurs if multiple buffers are specified, the BufferList property is not null.

e パラメーターおよび RemoteEndPoint を null 値にすることはできません。The e parameter cannot be null and the RemoteEndPoint cannot be null.

Socket がリッスンしているか、e パラメーターで指定されている SocketAsyncEventArgs オブジェクトを使用してソケット操作が既に進行していました。The Socket is listening or a socket operation was already in progress using the SocketAsyncEventArgs object specified in the e parameter.

ソケットへのアクセスを試行しているときにエラーが発生しました。An error occurred when attempting to access the socket.

このメソッドには Windows XP 以降が必要です。Windows XP or later is required for this method. この例外は、ローカル エンドポイントと RemoteEndPoint が同じアドレス ファミリではない場合にも発生します。This exception also occurs if the local endpoint and the RemoteEndPoint are not the same address family.

コール スタックの上位にある呼び出し元が、要求された操作のアクセス許可を保持していません。A caller higher in the call stack does not have permission for the requested operation.

注釈

M:System.Net.Sockets.Socket.ConnectAsync(System.Net.Sockets.SocketType,System.Net.Sockets.ProtocolType,System.Net.Sockets.SocketAsyncEventArgs) メソッドの非同期要求を開始接続指向プロトコルを使用している場合、リモート ホストに接続します。If you are using a connection-oriented protocol, the M:System.Net.Sockets.Socket.ConnectAsync(System.Net.Sockets.SocketType,System.Net.Sockets.ProtocolType,System.Net.Sockets.SocketAsyncEventArgs) method starts an asynchronous request for a connection to the remote host. コネクションレスのプロトコルを使用している場合ConnectAsyncで指定された既定のリモート ホストを確立、socketTypeprotocolTypeパラメーター。If you are using a connectionless protocol, ConnectAsync establishes a default remote host specified by the socketType and protocolType parameters.

完了の通知、イベント ハンドラーを実装するコールバック メソッドを作成する必要があります<SocketAsyncEventArgs > デリゲートおよびコールバックをアタッチ、SocketAsyncEventArgs.Completedイベント。To be notified of completion, you must create a callback method that implements the EventHandler<SocketAsyncEventArgs> delegate and attach the callback to the SocketAsyncEventArgs.Completed event.

呼び出し元を設定する必要があります、SocketAsyncEventArgs.RemoteEndPointプロパティをIPEndPointリモート ホストに接続するのです。The caller must set the SocketAsyncEventArgs.RemoteEndPoint property to the IPEndPoint of the remote host to connect to.

呼び出し元の設定、SocketAsyncEventArgs.UserTokenを呼び出す前に必要なすべてのユーザー状態オブジェクトのプロパティ、ConnectAsyncメソッド情報をコールバック メソッドで取得できるようにします。The caller may set the SocketAsyncEventArgs.UserToken property to any user state object desired before calling the ConnectAsync method, so that the information will be retrievable in the callback method. コールバックは、1 つのオブジェクトより多くの情報を必要とする場合は、メンバーとして他の必要な状態情報を保持する小さなクラスを作成できます。If the callback needs more information than a single object, a small class can be created to hold the other required state information as members.

UDP などのコネクションレスのプロトコルを使用している場合は呼び出しする必要はありませんConnectAsyncデータを送受信する前にします。If you are using a connectionless protocol such as UDP, you do not have to call ConnectAsync before sending and receiving data. 使用することができますSendToAsyncReceiveFromAsyncリモート ホストと通信します。You can use SendToAsync and ReceiveFromAsync to communicate with a remote host. 呼び出す場合ConnectAsync、指定した既定以外のアドレスから配信される任意のデータグラムは破棄されます。If you do call ConnectAsync, any datagrams that arrive from an address other than the specified default will be discarded. 既定のリモート ホストを変更する場合は、呼び出し、ConnectAsyncメソッドを使用して、目的のエンドポイント。If you want to change the default remote host, call the ConnectAsync method again with the desired endpoint.

最初に呼び出す必要がある場合は、ブロードキャスト アドレスに既定のリモート ホストを設定するには、SetSocketOptiontrueします。If you wish to set the default remote host to a broadcast address, you must first call SetSocketOption and set Broadcast to true. これが行われていない場合、ConnectAsyncメソッドがスローされます、SocketExceptionします。If this is not done, the ConnectAsync method will throw a SocketException.

次のプロパティとイベントをSystem.Net.Sockets.SocketAsyncEventArgsオブジェクトが必要です。The following properties and events on the System.Net.Sockets.SocketAsyncEventArgs object are required:

後にソケットをアトミックに送信されますバッファーを指定できます必要に応じて、ConnectAsyncメソッドが成功しました。Optionally, a buffer may be provided which will atomically be sent on the socket after the ConnectAsync method succeeds. ここで、SocketAsyncEventArgs.Bufferプロパティを送信するデータを含むバッファーに設定する必要があります、SocketAsyncEventArgs.Countプロパティは、バッファーから送信するデータのバイト数に設定する必要があります。In this case, the SocketAsyncEventArgs.Buffer property needs to be set to the buffer containing the data to send and the SocketAsyncEventArgs.Count property needs to be set to the number of bytes of data to send from the buffer. 接続が確立されると、このバッファーのデータが送信されます。Once a connection is established, this buffer of data is sent.

接続指向プロトコルを使用しているし、呼び出さないかどうかBind呼び出す前にConnectAsync、基になるサービス プロバイダーが最も適切なローカル ネットワーク アドレスとポート番号を割り当てられます。If you are using a connection-oriented protocol and do not call Bind before calling ConnectAsync, the underlying service provider will assign the most appropriate local network address and port number.

コネクションレスのプロトコルを使用している場合、サービス プロバイダーを割り当てませんローカル ネットワークの IP アドレスとポート番号を呼び出すまで、SendAsyncまたはReceiveAsyncメソッド。If you are using a connectionless protocol, the service provider will not assign a local network IP address and port number until you call the SendAsync or ReceiveAsync methods.

ConnectAsyncメソッドがスローされますNotSupportedException場合のアドレス ファミリ、 SocketSocketAsyncEventArgs.RemoteEndPoint同じアドレス ファミリではありません。The ConnectAsync method throws NotSupportedException if the address family of the Socket and the SocketAsyncEventArgs.RemoteEndPoint are not the same address family.

注意

表示された場合、SocketException使用して、このメソッドを呼び出すときに、SocketException.ErrorCode特定のエラー コードを取得するプロパティ。If you receive a SocketException when calling this method, use the SocketException.ErrorCode property to obtain the specific error code. このコードを取得した後を参照してください、 Windows Sockets version 2 API エラー コードエラーの詳細な説明のドキュメント。After you have obtained this code, refer to the Windows Sockets version 2 API error code documentation for a detailed description of the error.

適用対象