Socket.BeginConnect メソッドとは? わかりやすく解説

Weblio 辞書 > コンピュータ > .NET Framework クラス ライブラリ リファレンス > Socket.BeginConnect メソッドの意味・解説 

Socket.BeginConnect メソッド (String, Int32, AsyncCallback, Object)

メモ : このメソッドは、.NET Framework version 2.0新しく追加されたものです。

リモート ホスト接続への非同期要求開始しますホストは、ホスト名ポート番号指定されます。

名前空間: System.Net.Sockets
アセンブリ: System (system.dll 内)
構文構文

Public Function BeginConnect ( _
    host As String, _
    port As Integer, _
    requestCallback As AsyncCallback, _
    state As Object _
) As IAsyncResult
Dim instance As Socket
Dim host As String
Dim port As Integer
Dim requestCallback As AsyncCallback
Dim state As Object
Dim returnValue As IAsyncResult

returnValue = instance.BeginConnect(host, port, requestCallback, state)
public IAsyncResult BeginConnect (
    string host,
    int port,
    AsyncCallback requestCallback,
    Object state
)
public:
IAsyncResult^ BeginConnect (
    String^ host, 
    int port, 
    AsyncCallback^ requestCallback, 
    Object^ state
)
public IAsyncResult BeginConnect (
    String host, 
    int port, 
    AsyncCallback requestCallback, 
    Object state
)
public function BeginConnect (
    host : String, 
    port : int, 
    requestCallback : AsyncCallback, 
    state : Object
) : IAsyncResult

パラメータ

host

リモート ホストの名前。

port

リモート ホストポート番号

requestCallback

接続操作完了時に呼び出すメソッド参照する AsyncCallback デリゲート

state

接続操作に関する情報格納するユーザー定義のオブジェクト。このオブジェクトは、操作完了時に requestCallback デリゲート渡されます。

戻り値
非同期接続参照する IAsyncResult。

例外例外
例外種類条件

ArgumentNullException

hostnull 参照 (Visual Basic では Nothing) です。

ObjectDisposedException

Socket閉じられています。

NotSupportedException

このメソッドは、InterNetwork または InterNetworkV6 ファミリソケットで有効です。

ArgumentOutOfRangeException

ポート番号無効です。

InvalidOperationException

SocketListen実行中です。

解説解説

非同期BeginConnect 操作は、EndConnect メソッド呼び出して終了させる必要があります通常、このメソッドrequestCallback デリゲートによって呼び出されます。

このメソッドは、操作完了するまでブロックしません。操作完了するまでブロックするには、Connect メソッド オーバーロードいずれか使用します

非同期プログラミング モデル使用法詳細については、「同期メソッド非同期呼び出し」を参照してください

メモメモ

SocketException が発生した場合は、SocketException.ErrorCode プロパティ使用して具体的なエラー コード取得してください。このコード取得したら、Windows Socket Version 2 API エラー コードドキュメントエラー詳細情報確認してください。これは MSDN ライブラリから入手できます

メモメモ

このソケット接続が既に解除されていた場合は、操作完了まで終了しないスレッドで BeginConnect を呼び出す必要があります。これは、基になるプロバイダ制限です。また、使用する EndPoint異なる必要があります

使用例使用例

非同期接続試行開始するコード例次に示します

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.)
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");
}        
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照

Socket.BeginConnect メソッド (IPAddress, Int32, AsyncCallback, Object)

メモ : このメソッドは、.NET Framework version 2.0新しく追加されたものです。

リモート ホスト接続への非同期要求開始しますホストは、IPAddressポート番号指定されます。

名前空間: System.Net.Sockets
アセンブリ: System (system.dll 内)
構文構文

Public Function BeginConnect ( _
    address As IPAddress, _
    port As Integer, _
    requestCallback As AsyncCallback, _
    state As Object _
) As IAsyncResult
Dim instance As Socket
Dim address As IPAddress
Dim port As Integer
Dim requestCallback As AsyncCallback
Dim state As Object
Dim returnValue As IAsyncResult

returnValue = instance.BeginConnect(address, port, requestCallback, state)
public IAsyncResult BeginConnect (
    IPAddress address,
    int port,
    AsyncCallback requestCallback,
    Object state
)
public:
IAsyncResult^ BeginConnect (
    IPAddress^ address, 
    int port, 
    AsyncCallback^ requestCallback, 
    Object^ state
)
public IAsyncResult BeginConnect (
    IPAddress address, 
    int port, 
    AsyncCallback requestCallback, 
    Object state
)
public function BeginConnect (
    address : IPAddress, 
    port : int, 
    requestCallback : AsyncCallback, 
    state : Object
) : IAsyncResult

パラメータ

address

リモート ホストIPAddress

port

リモート ホストポート番号

requestCallback

接続操作完了時に呼び出すメソッド参照する AsyncCallback デリゲート

state

接続操作に関する情報格納するユーザー定義のオブジェクト。このオブジェクトは、操作完了時に requestCallback デリゲート渡されます。

戻り値
非同期接続参照する IAsyncResult。

例外例外
例外種類条件

ArgumentNullException

addressnull 参照 (Visual Basic では Nothing) です。

SocketException

ソケットへのアクセス試みているときにエラー発生しました詳細については「解説」を参照してください

ObjectDisposedException

Socket閉じられています。

NotSupportedException

Socketソケット ファミリ内にありません。

ArgumentOutOfRangeException

ポート番号無効です。

ArgumentException

address長さが 0 です。

InvalidOperationException

SocketListen実行中です。

解説解説

非同期BeginConnect 操作は、EndConnect メソッド呼び出して終了させる必要があります通常、このメソッドrequestCallback デリゲートによって呼び出されます。

このメソッドは、操作完了するまでブロックしません。操作完了するまでブロックするには、Connectいずれかメソッド オーバーロードEndConnect使用します

非同期プログラミング モデル使用法詳細については、「同期メソッド非同期呼び出し」を参照してください

メモメモ

SocketException発生した場合は、SocketException.ErrorCode プロパティ使用して具体的なエラー コード取得してください。このコード取得したら、Windows Socket Version 2 API エラー コードドキュメントエラー詳細情報確認してください。これは MSDN ライブラリから入手できます

メモメモ

このソケット接続が既に解除されていた場合は、操作完了まで終了しないスレッドで BeginConnect を呼び出す必要があります。これは、基になるプロバイダ制限です。また、使用する EndPoint異なる必要があります

使用例使用例

非同期接続試行開始するコード例次に示します

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
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");

}        
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照

Socket.BeginConnect メソッド (IPAddress[], Int32, AsyncCallback, Object)

メモ : このメソッドは、.NET Framework version 2.0新しく追加されたものです。

リモート ホスト接続への非同期要求開始しますホストは、IPAddress 配列ポート番号指定されます。

名前空間: System.Net.Sockets
アセンブリ: System (system.dll 内)
構文構文

Public Function BeginConnect ( _
    addresses As IPAddress(), _
    port As Integer, _
    requestCallback As AsyncCallback, _
    state As Object _
) As IAsyncResult
Dim instance As Socket
Dim addresses As IPAddress()
Dim port As Integer
Dim requestCallback As AsyncCallback
Dim state As Object
Dim returnValue As IAsyncResult

returnValue = instance.BeginConnect(addresses, port, requestCallback, state)
public IAsyncResult BeginConnect (
    IPAddress[] addresses,
    int port,
    AsyncCallback requestCallback,
    Object state
)
public:
IAsyncResult^ BeginConnect (
    array<IPAddress^>^ addresses, 
    int port, 
    AsyncCallback^ requestCallback, 
    Object^ state
)
public IAsyncResult BeginConnect (
    IPAddress[] addresses, 
    int port, 
    AsyncCallback requestCallback, 
    Object state
)
public function BeginConnect (
    addresses : IPAddress[], 
    port : int, 
    requestCallback : AsyncCallback, 
    state : Object
) : IAsyncResult

パラメータ

addresses

リモート ホスト指定する 1 つ上の IPAddress

port

リモート ホストポート番号

requestCallback

接続操作完了時に呼び出すメソッド参照する AsyncCallback デリゲート

state

接続操作に関する情報格納するユーザー定義のオブジェクト。このオブジェクトは、操作完了時に requestCallback デリゲート渡されます。

戻り値
非同期接続参照する IAsyncResult。

例外例外
例外種類条件

ArgumentNullException

addressesnull 参照 (Visual Basic では Nothing) です。

SocketException

ソケットへのアクセス試みているときにエラー発生しました詳細については「解説」を参照してください

ObjectDisposedException

Socket閉じられています。

NotSupportedException

このメソッドは、InterNetwork または InterNetworkV6 を使用するソケットで有効です。

ArgumentOutOfRangeException

ポート番号無効です。

ArgumentException

address長さが 0 です。

InvalidOperationException

SocketListen実行中です。

解説解説

非同期BeginConnect 操作は、EndConnect メソッド呼び出して終了させる必要があります通常、このメソッドrequestCallback デリゲートによって呼び出されます。

このメソッドは、操作完了するまでブロックしません。操作完了するまでブロックするには、Connect メソッド オーバーロードいずれか使用します

非同期プログラミング モデル使用法詳細については、「同期メソッド非同期呼び出し」を参照してください

メモメモ

SocketException発生した場合は、SocketException.ErrorCode プロパティ使用して具体的なエラー コード取得してください。このコード取得したら、Windows Socket Version 2 API エラー コードドキュメントエラー詳細情報確認してください。これは MSDN ライブラリから入手できます

メモメモ

このソケット接続が既に解除されていた場合は、操作完了まで終了しないスレッドで BeginConnect を呼び出す必要があります。これは、基になるプロバイダ制限です。また、使用する EndPoint異なる必要があります

使用例使用例

非同期接続試行開始するコード例次に示します

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.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");
}        
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照

Socket.BeginConnect メソッド


Socket.BeginConnect メソッド (EndPoint, AsyncCallback, Object)

リモート ホスト接続への非同期要求開始します

名前空間: System.Net.Sockets
アセンブリ: System (system.dll 内)
構文構文

Public Function BeginConnect ( _
    remoteEP As EndPoint, _
    callback As AsyncCallback, _
    state As Object _
) As IAsyncResult
Dim instance As Socket
Dim remoteEP As EndPoint
Dim callback As AsyncCallback
Dim state As Object
Dim returnValue As IAsyncResult

returnValue = instance.BeginConnect(remoteEP, callback, state)
public IAsyncResult BeginConnect (
    EndPoint remoteEP,
    AsyncCallback callback,
    Object state
)
public:
IAsyncResult^ BeginConnect (
    EndPoint^ remoteEP, 
    AsyncCallback^ callback, 
    Object^ state
)
public IAsyncResult BeginConnect (
    EndPoint remoteEP, 
    AsyncCallback callback, 
    Object state
)
public function BeginConnect (
    remoteEP : EndPoint, 
    callback : AsyncCallback, 
    state : Object
) : IAsyncResult

パラメータ

remoteEP

リモート ホストを表す EndPoint

callback

AsyncCallback デリゲート

state

この要求ステータス情報格納するオブジェクト

戻り値
非同期接続参照する IAsyncResult。

例外例外
例外種類条件

ArgumentNullException

remoteEPnull 参照 (Visual Basic では Nothing) です。

SocketException

ソケットへのアクセス試みているときにエラー発生しました詳細については「解説」を参照してください

ObjectDisposedException

Socket閉じられています。

SecurityException

コール スタックの上位にある呼び出し元が、要求され操作アクセス許可保持していません。

InvalidOperationException

SocketListen実行中です。

解説解説

コネクション指向プロトコル使用する場合BeginConnect メソッドは、remoteEP パラメータへの接続対す非同期要求開始しますコネクションレスプロトコル使用している場合BeginConnect既定リモート ホスト確立します。既定リモート ホスト非同期的に接続したりこのホスト非同期的に設定したりすると、個別実行スレッド内でデータ送受信できます

AsyncCallback デリゲート実装するコールバック メソッド作成し、その名前を BeginConnect メソッドに渡すことができます。この場合少なくとも state パラメータ使用してSocketBeginConnect に渡さなければなりません。またコールバックに他の情報必要な場合は、小さなクラス作成して Socket および必要な情報保持させることができます。この場合、このクラスインスタンスを、state パラメータ使用して BeginConnect メソッド渡します

コールバック メソッドは EndConnect メソッド呼び出す必要がありますアプリケーションBeginConnect呼び出すと、指定したコールバック メソッド個別スレッド使用して実行されEndConnect は、Socket正常に接続する例外スローするまでブロックしますBeginConnect メソッド呼び出してから元のスレッドブロックする場合は、WaitOne を使用します。元のスレッド実行継続させるには、コールバック メソッドの T:System.Threading.ManualResetEvent で Set メソッド呼び出します。コールバック メソッド記述に関する追加情報については、「Callbackサンプル」を参照してください

UDP などのコネクションレスプロトコル使用している場合は、データ送受信する前に BeginConnect呼び出す必要はありません。リモート ホストとの通信には、BeginSendTo および BeginReceiveFrom を使用できますBeginConnect呼び出した場合指定した既定アドレス以外から送信されデータグラムはすべて破棄されます。既定リモート ホストブロード キャスト アドレス設定するには、まず SetSocketOption を呼び出して Broadcasttrue設定する必要がありますこのように設定できない場合BeginConnectSocketExceptionスローます。

コネクション指向プロトコル使用しており、BeginConnect前に Bind呼び出さない場合は、基になるサービス プロバイダが最も適切なローカル ネットワーク アドレスポート番号割り当てますコネクションレスプロトコル使用している場合、BeginSend メソッドまたは ReceiveFrom メソッド呼び出すまで、サービス プロバイダローカル ネットワーク アドレスポート番号割り当てません。既定リモート ホスト変更する必要がある場合は、必要なエンドポイントBeginConnect メソッド再度呼び出します。

メモメモ

SocketException発生した場合は、SocketException.ErrorCode プロパティ使用して具体的なエラー コード取得してください。このコード取得したら、Windows Socket Version 2 API エラー コードドキュメントエラー詳細情報確認してください。これは MSDN ライブラリから入手できます

メモメモ

このソケット接続が既に解除されていた場合は、操作完了まで終了しないスレッドで BeginConnect を呼び出す必要があります。これは、基になるプロバイダ制限です。

使用例使用例

非同期接続試行開始するコード例次に示します

   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
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());
   }
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.get_AddressList()[0], 11000);

Socket s = new Socket(lep.get_Address().get_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 (System.Exception e) {
    Console.WriteLine(e.ToString());
}
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照



英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

Socket.BeginConnect メソッドのお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



Socket.BeginConnect メソッドのページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
日本マイクロソフト株式会社日本マイクロソフト株式会社
© 2024 Microsoft.All rights reserved.

©2024 GRAS Group, Inc.RSS