Socket.BeginConnect Socket.BeginConnect Socket.BeginConnect Socket.BeginConnect Method

定義

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

オーバーロード

BeginConnect(EndPoint, AsyncCallback, Object) BeginConnect(EndPoint, AsyncCallback, Object) BeginConnect(EndPoint, AsyncCallback, Object) BeginConnect(EndPoint, AsyncCallback, Object)

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

BeginConnect(IPAddress, Int32, AsyncCallback, Object) BeginConnect(IPAddress, Int32, AsyncCallback, Object) BeginConnect(IPAddress, Int32, AsyncCallback, Object) BeginConnect(IPAddress, Int32, AsyncCallback, Object)

リモート ホスト接続への非同期要求を開始します。Begins an asynchronous request for a remote host connection. ホストは IPAddress とポート番号で指定されます。The host is specified by an IPAddress and a port number.

BeginConnect(IPAddress[], Int32, AsyncCallback, Object) BeginConnect(IPAddress[], Int32, AsyncCallback, Object) BeginConnect(IPAddress[], Int32, AsyncCallback, Object) BeginConnect(IPAddress[], Int32, AsyncCallback, Object)

リモート ホスト接続への非同期要求を開始します。Begins an asynchronous request for a remote host connection. ホストは、IPAddress 配列とポート番号で指定されます。The host is specified by an IPAddress array and a port number.

BeginConnect(String, Int32, AsyncCallback, Object) BeginConnect(String, Int32, AsyncCallback, Object) BeginConnect(String, Int32, AsyncCallback, Object) BeginConnect(String, Int32, AsyncCallback, Object)

リモート ホスト接続への非同期要求を開始します。Begins an asynchronous request for a remote host connection. ホストはホスト名とポート番号で指定されます。The host is specified by a host name and a port number.

BeginConnect(EndPoint, AsyncCallback, Object) BeginConnect(EndPoint, AsyncCallback, Object) BeginConnect(EndPoint, AsyncCallback, Object) BeginConnect(EndPoint, AsyncCallback, Object)

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

public:
 IAsyncResult ^ BeginConnect(System::Net::EndPoint ^ end_point, AsyncCallback ^ callback, System::Object ^ state);
public IAsyncResult BeginConnect (System.Net.EndPoint end_point, AsyncCallback callback, object state);
member this.BeginConnect : System.Net.EndPoint * AsyncCallback * obj -> IAsyncResult
Public Function BeginConnect (end_point As EndPoint, callback As AsyncCallback, state As Object) As IAsyncResult

パラメーター

remoteEP
EndPoint EndPoint EndPoint EndPoint

リモート ホストを表す EndPointAn EndPoint that represents the remote host.

state
Object Object Object Object

この要求のステータス情報を格納するオブジェクト。An object that contains state information for this request.

戻り値

非同期接続を参照する IAsyncResultAn IAsyncResult that references the asynchronous connection.

例外

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

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

SocketListen(Int32) を呼び出すことでリッスン状態になっているか、非同期操作は既に実行されています。The Socket has been placed in a listening state by calling Listen(Int32), or an asynchronous operation is already in progress.

次のコード例では、非同期接続の試行を開始します。The following code example initiates an asynchronous connection attempt.

IPHostEntry^ lipa = Dns::Resolve( "host.contoso.com" );
IPEndPoint^ lep = gcnew IPEndPoint( lipa->AddressList[ 0 ], 11000 );

Socket^ s = gcnew Socket( lep->Address->AddressFamily,
   SocketType::Stream,
   ProtocolType::Tcp );
try
{
   while ( true )
   {
      allDone->Reset();

      Console::WriteLine( "Establishing Connection" );
      s->BeginConnect( lep, gcnew AsyncCallback(
         &Async_Send_Receive::Connect_Callback ), s );

      allDone->WaitOne();
   }
}
catch ( Exception^ e ) 
{
   Console::WriteLine( e );
}
IPHostEntry lipa = Dns.Resolve("host.contoso.com");
IPEndPoint lep = new IPEndPoint(lipa.AddressList[0], 11000);

      Socket s = new Socket(lep.Address.AddressFamily,
      	                           SocketType.Stream,
                                        ProtocolType.Tcp);
      try{
         
                while(true){
                allDone.Reset();

                Console.WriteLine("Establishing Connection");
                s.BeginConnect(lep, new AsyncCallback(Async_Send_Receive.Connect_Callback), s);

                allDone.WaitOne();
           }
      }
      catch (Exception e){
           Console.WriteLine(e.ToString());
      }
   Dim lipa As IPHostEntry = Dns.Resolve("host.contoso.com")
   Dim lep As New IPEndPoint(lipa.AddressList(0), 11000)
   
   Dim s As New Socket(lep.Address.AddressFamily, SocketType.Stream, ProtocolType.Tcp)
   Try
      
      While True
         allDone.Reset()
         
         Console.WriteLine("Establishing Connection")

         s.BeginConnect(lep, New AsyncCallback(AddressOf Async_Send_Receive.Connect_Callback), s)
         
         allDone.WaitOne()
      End While
   Catch e As Exception
      Console.WriteLine(e.ToString())
   End Try
End Sub 'Connect

注釈

接続指向のプロトコルを使用している場合、BeginConnectメソッドへの接続の非同期要求の開始、remoteEPパラメーター。If you are using a connection-oriented protocol, the BeginConnect method starts an asynchronous request for a connection to the remoteEP parameter. コネクションレスのプロトコルを使用している場合BeginConnect既定のリモート ホストを確立します。If you are using a connectionless protocol, BeginConnect establishes a default remote host. 接続または既定のリモート ホストの設定を非同期的に個別の実行スレッド内でデータを送受信する機能を提供します。Connecting or setting the default remote host asynchronously gives you the ability to send and receive data within a separate execution thread.

実装するコールバック メソッドを作成することができます、AsyncCallbackを委任し、その名前を渡す、BeginConnectメソッド。You can create a callback method that implements the AsyncCallback delegate and pass its name to the BeginConnect method. 渡す必要があります、極端に言えば、SocketBeginConnectを通じて、stateパラメーター。At the very minimum, you must pass the Socket to BeginConnect through the state parameter. 保持するために小さなクラスを作成するには、コールバックは、詳細を必要とする場合、 Socket、およびその他の必要な情報。If your callback needs more information, you can create a small class to hold the Socket, and the other required information. このクラスのインスタンスを渡す、BeginConnectメソッドによって、stateパラメーター。Pass an instance of this class to the BeginConnect method through the state parameter.

コールバック メソッドを呼び出す必要がある、EndConnectメソッド。Your callback method should invoke the EndConnect method. アプリケーションを呼び出すとBeginConnect、システムを別のスレッドを使用して、指定されたコールバック メソッドを実行して、ブロックされますEndConnectまで、Socket正常に接続または例外をスローします。When your application calls BeginConnect, the system will use a separate thread to execute the specified callback method, and will block on EndConnect until the Socket connects successfully or throws an exception. 元のスレッドを呼び出した後にブロックするかどうか、BeginConnectメソッドを使用してWaitOneします。If you want the original thread to block after you call the BeginConnect method, use WaitOne. Set メソッドを呼び出し、ManualResetEvent元のスレッドの実行を続行する場合は、コールバック メソッドで。Call the Set method on a ManualResetEvent in the callback method when you want the original thread to continue executing. コールバック メソッドの記述の詳細については、次を参照してください。コールバック メソッドとしてデリゲートのマーシャ リングします。For additional information on writing callback methods see Marshaling a Delegate as a Callback Method.

UDP などのコネクションレスのプロトコルを使用している場合は呼び出しする必要はありませんBeginConnectデータを送受信する前にします。If you are using a connectionless protocol such as UDP, you do not have to call BeginConnect before sending and receiving data. 使用することができますBeginSendToBeginReceiveFromリモート ホストと通信します。You can use BeginSendTo and BeginReceiveFrom to communicate with a remote host. 呼び出す場合BeginConnect、指定した既定以外のアドレスから配信される任意のデータグラムは破棄されます。If you do call BeginConnect, any datagrams that arrive from an address other than the specified default will be discarded. 最初に呼び出す必要がある場合は、ブロードキャスト アドレスに既定のリモート ホストを設定するには、SetSocketOptiontrueします。If you wish to set your default remote host to a broadcast address, you must first call SetSocketOption and set Broadcast to true. できない場合は、BeginConnectがスローされます、SocketExceptionします。If you cannot, BeginConnect will throw a SocketException.

接続指向プロトコルを使用しているし、呼び出さないかどうかBind呼び出す前にBeginConnect、基になるサービス プロバイダーが最も適切なローカル ネットワーク アドレスとポート番号を割り当てられます。If you are using a connection-oriented protocol and do not call Bind before calling BeginConnect, the underlying service provider will assign the most appropriate local network address and port number. コネクションレスのプロトコルを使用している場合、サービス プロバイダーを割り当てませんローカル ネットワーク アドレスとポート番号を呼び出すまで、BeginSendまたはReceiveFromメソッド。If you are using a connectionless protocol, the service provider will not assign a local network address and port number until you call the BeginSend or ReceiveFrom method. 既定のリモート ホストを変更する場合は、呼び出し、BeginConnectメソッドを使用して、目的のエンドポイント。If you want to change the default remote host, call the BeginConnect method again with the desired endpoint.

保留中の呼び出しをキャンセル、BeginConnectメソッド、閉じる、Socketします。To cancel a pending call to the BeginConnect method, close the Socket. ときに、Closeメソッドを呼び出す非同期操作の進行中に、コールバックが提供されて、BeginConnectメソッドが呼び出されます。When the Close method is called while an asynchronous operation is in progress, the callback provided to the BeginConnect method is called. 後続の呼び出し、EndConnectメソッドがスローされます、ObjectDisposedExceptionを示す、操作がキャンセルされました。A subsequent call to the EndConnect method will throw an ObjectDisposedException to indicate that the operation has been cancelled.

注意

表示された場合、SocketExceptionを使用して、SocketException.ErrorCode特定のエラー コードを取得するプロパティ。If you receive a SocketException, 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.

注意

このソケットが解除されていたし場合BeginConnect操作が完了するまで終了しないスレッドで呼び出される必要があります。If this socket has previously been disconnected, then BeginConnect must be called on a thread that will not exit until the operation is complete. これは、基になるプロバイダーの制限です。This is a limitation of the underlying provider.

注意

このメンバーは、アプリケーションでネットワーク トレースが有効にされている場合にトレース情報を出力します。This member outputs trace information when you enable network tracing in your application. 詳細については、次を参照してください。ネットワークのトレースを .NET Framework でします。For more information, see Network Tracing in the .NET Framework.

注意

非同期の実行コンテキスト (セキュリティ コンテキスト、権限を借用したユーザー、および呼び出し元のコンテキスト) がキャッシュされるSocketメソッド。The execution context (the security context, the impersonated user, and the calling context) is cached for the asynchronous Socket methods. 特定のコンテキストの最初の使用後に (特定の非同期Socketメソッドは、特定のSocketインスタンス、および特定のコールバック)、それ以降はそのコンテキストのパフォーマンスの向上が表示されます。After the first use of a particular context (a specific asynchronous Socket method, a specific Socket instance, and a specific callback), subsequent uses of that context will see a performance improvement.

こちらもご覧ください

BeginConnect(IPAddress, Int32, AsyncCallback, Object) BeginConnect(IPAddress, Int32, AsyncCallback, Object) BeginConnect(IPAddress, Int32, AsyncCallback, Object) BeginConnect(IPAddress, Int32, AsyncCallback, Object)

リモート ホスト接続への非同期要求を開始します。Begins an asynchronous request for a remote host connection. ホストは IPAddress とポート番号で指定されます。The host is specified by an IPAddress and a port number.

public:
 IAsyncResult ^ BeginConnect(System::Net::IPAddress ^ address, int port, AsyncCallback ^ callback, System::Object ^ state);
public IAsyncResult BeginConnect (System.Net.IPAddress address, int port, AsyncCallback callback, object state);
member this.BeginConnect : System.Net.IPAddress * int * AsyncCallback * obj -> IAsyncResult
Public Function BeginConnect (address As IPAddress, port As Integer, callback As AsyncCallback, state As Object) As IAsyncResult

パラメーター

address
IPAddress IPAddress IPAddress IPAddress

リモート ホストの IPAddressThe IPAddress of the remote host.

port
Int32 Int32 Int32 Int32

リモート ホストのポート番号。The port number of the remote host.

requestCallback
AsyncCallback AsyncCallback AsyncCallback AsyncCallback

接続操作の完了時に呼び出すメソッドを参照する AsyncCallback デリゲート。An AsyncCallback delegate that references the method to invoke when the connect operation is complete.

state
Object Object Object Object

接続操作に関する情報を格納するユーザー定義のオブジェクト。A user-defined object that contains information about the connect operation. このオブジェクトは、操作の完了時に requestCallback デリゲートに渡されます。This object is passed to the requestCallback delegate when the operation is complete.

戻り値

非同期接続を参照する IAsyncResultAn IAsyncResult that references the asynchronous connection.

例外

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

Socket はソケット ファミリに含まれません。The Socket is not in the socket family.

address の長さが 0 です。The length of address is zero.

SocketListen(Int32) を呼び出すことでリッスン状態になっているか、非同期操作は既に実行されています。The Socket has been placed in a listening state by calling Listen(Int32), or an asynchronous operation is already in progress.

次のコード例では、非同期接続の試行を開始します。The following code example initiates an asynchronous connection attempt.

static ManualResetEvent^ allDone = gcnew ManualResetEvent( false );

// handles the completion of the prior asynchronous 
// connect call. the socket is passed via the objectState 
// paramater of BeginConnect().
static void ConnectCallback1( IAsyncResult^ ar )
{
   allDone->Set();
   Socket^ s = dynamic_cast<Socket^>(ar->AsyncState);
   s->EndConnect( ar );
}


public static ManualResetEvent allDone = 
    new ManualResetEvent(false);

// handles the completion of the prior asynchronous 
// connect call. the socket is passed via the objectState 
// paramater of BeginConnect().
public static void ConnectCallback1(IAsyncResult ar)
{
    allDone.Set();
    Socket s = (Socket) ar.AsyncState;
    s.EndConnect(ar);
}
// Asynchronous connect using the host name, resolved via 
// IPAddress
static void BeginConnect1( String^ host, int port )
{
   array<IPAddress^>^IPs = Dns::GetHostAddresses( host );
   Socket^ s = gcnew Socket( AddressFamily::InterNetwork,SocketType::Stream,ProtocolType::Tcp );
   allDone->Reset();
   Console::WriteLine( "Establishing Connection to {0}", host );
   s->BeginConnect( IPs[ 0 ], port, gcnew AsyncCallback( ConnectCallback1 ), s );
   
   // wait here until the connect finishes.  
   // The callback sets allDone.
   allDone->WaitOne();
   Console::WriteLine( "Connection established" );
}


// Asynchronous connect using the host name, resolved via 
// IPAddress
public static void BeginConnect1(string host, int port)
{

    IPAddress[] IPs = Dns.GetHostAddresses(host);

    Socket s = new Socket(AddressFamily.InterNetwork,
        SocketType.Stream,
        ProtocolType.Tcp);

    allDone.Reset();

    Console.WriteLine("Establishing Connection to {0}", 
        host);
    s.BeginConnect(IPs[0], port, 
        new AsyncCallback(ConnectCallback1), s);

    // wait here until the connect finishes.  
    // The callback sets allDone.
    allDone.WaitOne();

    Console.WriteLine("Connection established");

}		

注釈

非同期のBeginConnect操作を呼び出すことによって完了する必要があります、EndConnectメソッド。The asynchronous BeginConnect operation must be completed by calling the EndConnect method. 通常、メソッドは、によって呼び出される、requestCallbackを委任します。Typically, the method is invoked by the requestCallback delegate.

操作が完了するまで、このメソッドはブロックされません。This method does not block until the operation is complete. 操作が完了するまでにブロックするのいずれかの操作を使用して、Connectメソッドのオーバー ロードまたはEndConnectします。To block until the operation is complete, use one of the Connect method overloads, or EndConnect.

保留中の呼び出しをキャンセル、BeginConnectメソッド、閉じる、Socketします。To cancel a pending call to the BeginConnect method, close the Socket. ときに、Closeメソッドを呼び出す非同期操作の進行中に、コールバックが提供されて、BeginConnectメソッドが呼び出されます。When the Close method is called while an asynchronous operation is in progress, the callback provided to the BeginConnect method is called. 後続の呼び出し、EndConnectメソッドがスローされます、ObjectDisposedExceptionを示す、操作がキャンセルされました。A subsequent call to the EndConnect method will throw an ObjectDisposedException to indicate that the operation has been cancelled.

詳細については、非同期プログラミング モデルを使用して、次を参照してくださいCalling Synchronous Methods Asynchronously。For detailed information about using the asynchronous programming model, see Calling Synchronous Methods Asynchronously

注意

表示された場合、SocketExceptionを使用して、SocketException.ErrorCode特定のエラー コードを取得するプロパティ。If you receive a SocketException, 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.

注意

このソケットが解除されていたし場合BeginConnect操作が完了するまで終了しないスレッドで呼び出される必要があります。If this socket has previously been disconnected, then BeginConnect must be called on a thread that will not exit until the operation is complete. これは、基になるプロバイダーの制限です。This is a limitation of the underlying provider. また、EndPointが使用されます。 異なる指定する必要があります。Also the EndPoint that is used must be different.

注意

このメンバーは、アプリケーションでネットワーク トレースが有効にされている場合にトレース情報を出力します。This member outputs trace information when you enable network tracing in your application. 詳細については、次を参照してください。ネットワークのトレースを .NET Framework でします。For more information, see Network Tracing in the .NET Framework.

注意

非同期の実行コンテキスト (セキュリティ コンテキスト、権限を借用したユーザー、および呼び出し元のコンテキスト) がキャッシュされるSocketメソッド。The execution context (the security context, the impersonated user, and the calling context) is cached for the asynchronous Socket methods. 特定のコンテキストの最初の使用後に (特定の非同期Socketメソッドは、特定のSocketインスタンス、および特定のコールバック)、それ以降はそのコンテキストのパフォーマンスの向上が表示されます。After the first use of a particular context (a specific asynchronous Socket method, a specific Socket instance, and a specific callback), subsequent uses of that context will see a performance improvement.

こちらもご覧ください

BeginConnect(IPAddress[], Int32, AsyncCallback, Object) BeginConnect(IPAddress[], Int32, AsyncCallback, Object) BeginConnect(IPAddress[], Int32, AsyncCallback, Object) BeginConnect(IPAddress[], Int32, AsyncCallback, Object)

リモート ホスト接続への非同期要求を開始します。Begins an asynchronous request for a remote host connection. ホストは、IPAddress 配列とポート番号で指定されます。The host is specified by an IPAddress array and a port number.

public:
 IAsyncResult ^ BeginConnect(cli::array <System::Net::IPAddress ^> ^ addresses, int port, AsyncCallback ^ callback, System::Object ^ state);
public IAsyncResult BeginConnect (System.Net.IPAddress[] addresses, int port, AsyncCallback callback, object state);
member this.BeginConnect : System.Net.IPAddress[] * int * AsyncCallback * obj -> IAsyncResult
Public Function BeginConnect (addresses As IPAddress(), port As Integer, callback As AsyncCallback, state As Object) As IAsyncResult

パラメーター

addresses
IPAddress[]

リモート ホストを指定する、少なくとも 1 つの IPAddressAt least one IPAddress, designating the remote host.

port
Int32 Int32 Int32 Int32

リモート ホストのポート番号。The port number of the remote host.

requestCallback
AsyncCallback AsyncCallback AsyncCallback AsyncCallback

接続操作の完了時に呼び出すメソッドを参照する AsyncCallback デリゲート。An AsyncCallback delegate that references the method to invoke when the connect operation is complete.

state
Object Object Object Object

接続操作に関する情報を格納するユーザー定義のオブジェクト。A user-defined object that contains information about the connect operation. このオブジェクトは、操作の完了時に requestCallback デリゲートに渡されます。This object is passed to the requestCallback delegate when the operation is complete.

戻り値

非同期接続を参照する IAsyncResultAn IAsyncResult that references the asynchronous connections.

例外

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

このメソッドは InterNetwork または InterNetworkV6 を使用するソケットで有効です。This method is valid for sockets that use InterNetwork or InterNetworkV6.

address の長さが 0 です。The length of address is zero.

SocketListen(Int32) を呼び出すことでリッスン状態になっているか、非同期操作は既に実行されています。The Socket has been placed in a listening state by calling Listen(Int32), or an asynchronous operation is already in progress.

次のコード例では、非同期接続の試行を開始します。The following code example initiates an asynchronous connection attempt.

static ManualResetEvent^ allDone = gcnew ManualResetEvent( false );

// handles the completion of the prior asynchronous 
// connect call. the socket is passed via the objectState 
// paramater of BeginConnect().
static void ConnectCallback1( IAsyncResult^ ar )
{
   allDone->Set();
   Socket^ s = dynamic_cast<Socket^>(ar->AsyncState);
   s->EndConnect( ar );
}


public static ManualResetEvent allDone = 
    new ManualResetEvent(false);

// handles the completion of the prior asynchronous 
// connect call. the socket is passed via the objectState 
// paramater of BeginConnect().
public static void ConnectCallback1(IAsyncResult ar)
{
    allDone.Set();
    Socket s = (Socket) ar.AsyncState;
    s.EndConnect(ar);
}
// Asynchronous connect, using DNS.ResolveToAddresses
static void BeginConnect2( String^ host, int port )
{
   array<IPAddress^>^IPs = Dns::GetHostAddresses( host );
   Socket^ s = gcnew Socket( AddressFamily::InterNetwork,SocketType::Stream,ProtocolType::Tcp );
   allDone->Reset();
   Console::WriteLine( "Establishing Connection to {0}", host );
   s->BeginConnect( IPs, port, gcnew AsyncCallback( ConnectCallback1 ), s );
   
   // wait here until the connect finishes.  The callback 
   // sets allDone.
   allDone->WaitOne();
   Console::WriteLine( "Connection established" );
}



// Asynchronous connect, using DNS.GetHostAddresses
public static void BeginConnect2(string host, int port)
{
    IPAddress[] IPs = Dns.GetHostAddresses(host);

    Socket s = new Socket(AddressFamily.InterNetwork,
        SocketType.Stream,
        ProtocolType.Tcp);

    allDone.Reset();

    Console.WriteLine("Establishing Connection to {0}", 
        host);
    s.BeginConnect(IPs, port, 
        new AsyncCallback(ConnectCallback1), s);

    // wait here until the connect finishes.  The callback 
    // sets allDone.
    allDone.WaitOne();

    Console.WriteLine("Connection established");
}		

注釈

非同期のBeginConnect操作を呼び出すことによって完了する必要があります、EndConnectメソッド。The asynchronous BeginConnect operation must be completed by calling the EndConnect method. 通常、メソッドは、によって呼び出される、requestCallbackを委任します。Typically, the method is invoked by the requestCallback delegate.

操作が完了するまで、このメソッドはブロックされません。This method does not block until the operation is complete. 操作が完了するまでにブロックするのいずれかの操作を使用して、Connectメソッドのオーバー ロードします。To block until the operation is complete, use one of the Connect method overloads.

保留中の呼び出しをキャンセル、BeginConnectメソッド、閉じる、Socketします。To cancel a pending call to the BeginConnect method, close the Socket. ときに、Closeメソッドを呼び出す非同期操作の進行中に、コールバックが提供されて、BeginConnectメソッドが呼び出されます。When the Close method is called while an asynchronous operation is in progress, the callback provided to the BeginConnect method is called. 後続の呼び出し、EndConnectメソッドがスローされます、ObjectDisposedExceptionを示す、操作がキャンセルされました。A subsequent call to the EndConnect method will throw an ObjectDisposedException to indicate that the operation has been cancelled.

詳細については、非同期プログラミング モデルを使用して、次を参照してください。 Calling Synchronous Methods Asynchronouslyします。For detailed information about using the asynchronous programming model, see Calling Synchronous Methods Asynchronously.

注意

表示された場合、SocketExceptionを使用して、SocketException.ErrorCode特定のエラー コードを取得するプロパティ。If you receive a SocketException, 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.

注意

このソケットが解除されていたし場合BeginConnect操作が完了するまで終了しないスレッドで呼び出される必要があります。If this socket has previously been disconnected, then BeginConnect must be called on a thread that will not exit until the operation is complete. これは、基になるプロバイダーの制限です。This is a limitation of the underlying provider. また、EndPointが使用されます。 異なる指定する必要があります。Also the EndPoint that is used must be different.

注意

このメンバーは、アプリケーションでネットワーク トレースが有効にされている場合にトレース情報を出力します。This member outputs trace information when you enable network tracing in your application. 詳細については、次を参照してください。ネットワークのトレースを .NET Framework でします。For more information, see Network Tracing in the .NET Framework.

注意

非同期の実行コンテキスト (セキュリティ コンテキスト、権限を借用したユーザー、および呼び出し元のコンテキスト) がキャッシュされるSocketメソッド。The execution context (the security context, the impersonated user, and the calling context) is cached for the asynchronous Socket methods. 特定のコンテキストの最初の使用後に (特定の非同期Socketメソッドは、特定のSocketインスタンス、および特定のコールバック)、それ以降はそのコンテキストのパフォーマンスの向上が表示されます。After the first use of a particular context (a specific asynchronous Socket method, a specific Socket instance, and a specific callback), subsequent uses of that context will see a performance improvement.

こちらもご覧ください

BeginConnect(String, Int32, AsyncCallback, Object) BeginConnect(String, Int32, AsyncCallback, Object) BeginConnect(String, Int32, AsyncCallback, Object) BeginConnect(String, Int32, AsyncCallback, Object)

リモート ホスト接続への非同期要求を開始します。Begins an asynchronous request for a remote host connection. ホストはホスト名とポート番号で指定されます。The host is specified by a host name and a port number.

public:
 IAsyncResult ^ BeginConnect(System::String ^ host, int port, AsyncCallback ^ callback, System::Object ^ state);
public IAsyncResult BeginConnect (string host, int port, AsyncCallback callback, object state);
member this.BeginConnect : string * int * AsyncCallback * obj -> IAsyncResult
Public Function BeginConnect (host As String, port As Integer, callback As AsyncCallback, state As Object) As IAsyncResult

パラメーター

host
String String String String

リモート ホストの名前。The name of the remote host.

port
Int32 Int32 Int32 Int32

リモート ホストのポート番号。The port number of the remote host.

requestCallback
AsyncCallback AsyncCallback AsyncCallback AsyncCallback

接続操作の完了時に呼び出すメソッドを参照する AsyncCallback デリゲート。An AsyncCallback delegate that references the method to invoke when the connect operation is complete.

state
Object Object Object Object

接続操作に関する情報を格納するユーザー定義のオブジェクト。A user-defined object that contains information about the connect operation. このオブジェクトは、操作の完了時に requestCallback デリゲートに渡されます。This object is passed to the requestCallback delegate when the operation is complete.

戻り値

非同期接続を参照する IAsyncResultAn IAsyncResult that references the asynchronous connection.

例外

このメソッドは、InterNetwork または InterNetworkV6 ファミリのソケットで有効です。This method is valid for sockets in the InterNetwork or InterNetworkV6 families.

SocketListen(Int32) を呼び出すことでリッスン状態になっているか、非同期操作は既に実行されています。The Socket has been placed in a listening state by calling Listen(Int32), or an asynchronous operation is already in progress.

次のコード例では、非同期接続の試行を開始します。The following code example initiates an asynchronous connection attempt.

static ManualResetEvent^ allDone = gcnew ManualResetEvent( false );

// handles the completion of the prior asynchronous 
// connect call. the socket is passed via the objectState 
// paramater of BeginConnect().
static void ConnectCallback1( IAsyncResult^ ar )
{
   allDone->Set();
   Socket^ s = dynamic_cast<Socket^>(ar->AsyncState);
   s->EndConnect( ar );
}


public static ManualResetEvent allDone = 
    new ManualResetEvent(false);

// handles the completion of the prior asynchronous 
// connect call. the socket is passed via the objectState 
// paramater of BeginConnect().
public static void ConnectCallback1(IAsyncResult ar)
{
    allDone.Set();
    Socket s = (Socket) ar.AsyncState;
    s.EndConnect(ar);
}
// Asynchronous connect using host name (resolved by the 
// BeginConnect call.)
static void BeginConnect3( String^ host, int port )
{
   Socket^ s = gcnew Socket( AddressFamily::InterNetwork,SocketType::Stream,ProtocolType::Tcp );
   allDone->Reset();
   Console::WriteLine( "Establishing Connection to {0}", host );
   s->BeginConnect( host, port, gcnew AsyncCallback( ConnectCallback1 ), s );
   
   // wait here until the connect finishes.  The callback 
   // sets allDone.
   allDone->WaitOne();
   Console::WriteLine( "Connection established" );
}


// Asynchronous connect using host name (resolved by the 
// BeginConnect call.)
public static void BeginConnect3(string host, int port)
{
    Socket s = new Socket(AddressFamily.InterNetwork,
        SocketType.Stream,
        ProtocolType.Tcp);

    allDone.Reset();

    Console.WriteLine("Establishing Connection to {0}", 
        host);
    s.BeginConnect(host, port, 
        new AsyncCallback(ConnectCallback1), s);

    // wait here until the connect finishes.  The callback 
    // sets allDone.
    allDone.WaitOne();

    Console.WriteLine("Connection established");
}		

注釈

非同期のBeginConnect操作を呼び出すことによって完了する必要があります、EndConnectメソッド。The asynchronous BeginConnect operation must be completed by calling the EndConnect method. 通常、メソッドは、によって呼び出される、requestCallbackを委任します。Typically, the method is invoked by the requestCallback delegate.

操作が完了するまで、このメソッドはブロックされません。This method does not block until the operation is complete. 操作が完了するまでにブロックするのいずれかの操作を使用して、Connectメソッドのオーバー ロードします。To block until the operation is complete, use one of the Connect method overloads.

保留中の呼び出しをキャンセル、BeginConnectメソッド、閉じる、Socketします。To cancel a pending call to the BeginConnect method, close the Socket. ときに、Closeメソッドを呼び出す非同期操作の進行中に、コールバックが提供されて、BeginConnectメソッドが呼び出されます。When the Close method is called while an asynchronous operation is in progress, the callback provided to the BeginConnect method is called. 後続の呼び出し、EndConnectメソッドがスローされます、ObjectDisposedExceptionを示す、操作がキャンセルされました。A subsequent call to the EndConnect method will throw an ObjectDisposedException to indicate that the operation has been cancelled.

詳細については、非同期プログラミング モデルを使用して、次を参照してくださいCalling Synchronous Methods Asynchronously。For detailed information about using the asynchronous programming model, see Calling Synchronous Methods Asynchronously

注意

表示された場合、SocketExceptionを使用して、SocketException.ErrorCode特定のエラー コードを取得するプロパティ。If you receive a SocketException, 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.

注意

このソケットが解除されていたし場合BeginConnect操作が完了するまで終了しないスレッドで呼び出される必要があります。If this socket has previously been disconnected, then BeginConnect must be called on a thread that will not exit until the operation is complete. これは、基になるプロバイダーの制限です。This is a limitation of the underlying provider. また、EndPointが使用されます。 異なる指定する必要があります。Also the EndPoint that is used must be different.

注意

このメンバーは、アプリケーションでネットワーク トレースが有効にされている場合にトレース情報を出力します。This member outputs trace information when you enable network tracing in your application. 詳細については、次を参照してください。ネットワークのトレースを .NET Framework でします。For more information, see Network Tracing in the .NET Framework.

注意

非同期の実行コンテキスト (セキュリティ コンテキスト、権限を借用したユーザー、および呼び出し元のコンテキスト) がキャッシュされるSocketメソッド。The execution context (the security context, the impersonated user, and the calling context) is cached for the asynchronous Socket methods. 特定のコンテキストの最初の使用後に (特定の非同期Socketメソッドは、特定のSocketインスタンス、および特定のコールバック)、それ以降はそのコンテキストのパフォーマンスの向上が表示されます。After the first use of a particular context (a specific asynchronous Socket method, a specific Socket instance, and a specific callback), subsequent uses of that context will see a performance improvement.

こちらもご覧ください

適用対象