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

Socket.Connect メソッド (IPAddress[], Int32)

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

リモート ホストへの接続確立します。ホストは、IP アドレスポート番号配列指定されます。

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

例外例外
例外種類条件

ArgumentNullException

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

ArgumentOutOfRangeException

ポート番号無効です。

SocketException

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

ObjectDisposedException

Socket閉じられています。

NotSupportedException

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

ArgumentException

address長さが 0 です。

InvalidOperationException

SocketListen実行中です。

解説解説

通常、このメソッドは GetHostAddresses を呼び出した直後使用され単一ホスト対す複数IP アドレス返すことができますTCP などのコネクション指向プロトコル使用している場合Connect メソッドは LocalEndPoint と指定したリモート エンドポイント間のネットワーク接続同期的確立します。コネクションレスプロトコル使用している場合Connect既定リモート ホスト確立します。Connect呼び出したら、Send メソッド使用してリモート デバイスデータ送信できますまた、Receive メソッド使用してリモート デバイスからデータ受信することもできます

UDP などのコネクションレスプロトコル使用している場合は、データ送受信する前に Connect呼び出す必要はありません。リモート ホストとの同期通信には、SendTo および ReceiveFrom を使用できますConnect呼び出した場合指定した既定アドレス以外から送信されデータグラムはすべて破棄されます。既定リモート ホストブロードキャスト アドレス設定する場合は、最初に SetSocketOption メソッド呼び出しソケット オプションを SocketOptionName.Broadcast に設定する必要がありますこのように設定しないと、ConnectSocketExceptionスローます。SocketException発生した場合は、SocketException.ErrorCode プロパティ使用して具体的なエラー コード取得してください。このコード取得したら、Windows Socket Version 2 API エラー コードマニュアルかエラー詳細情報確認してください。これは MSDN ライブラリから入手できます

Connect呼び出す前に Blocking プロパティfalse設定しないと、Connect メソッドブロックしますTCP などのコネクション指向プロトコル使用しており、ブロック無効にしている場合Connect には接続確立するための時間が必要です。このためSocketExceptionスローます。一方コネクションレスプロトコルは、既定リモート ホスト確立するだけであるため、例外スローしません。SocketException.ErrorCode使用すると、特定のエラー コード取得できます。このコード取得したら、Windows Socket Version 2 API エラー コードドキュメントエラー詳細情報確認してください。これは MSDN ライブラリから入手できますエラーが WSAEWOULDBLOCK を返した場合リモート ホスト接続コネクション指向Socket によって開始されていますが、正常に完了していません。Poll メソッド使用してSocket がいつ接続完了するかを確認します

メモメモ

コネクション指向プロトコル使用しており、Connect前に Bind呼び出さなかった場合は、基になるサービス プロバイダローカル ネットワーク アドレスポート番号割り当てますコネクションレスプロトコル使用している場合は、送受信操作完了するまで、サービス プロバイダローカル ネットワーク アドレスポート番号割り当てません。既定リモート ホスト変更する必要がある場合は、必要なエンドポイントConnect再度呼び出します。

メモメモ

ソケット接続が既に解除されていた場合、このメソッド使って接続復元することはできません。いずれか非同期 BeginConnect メソッド使用して再接続してください。これは、基になるプロバイダ制限です。

使用例使用例

リモート エンドポイント接続し接続検証するコード例次に示します

// Synchronous connect using Dns.GetHostAddresses to 
// resolve the host name.
public static void Connect2(string
 host, int port)
{
    IPAddress[] IPs = Dns.GetHostAddresses(host);

    Socket s = new Socket(AddressFamily.InterNetwork,
        SocketType.Stream,
        ProtocolType.Tcp);
    Console.WriteLine("Establishing Connection to {0}", 
        host);
    s.Connect(IPs, port);
    Console.WriteLine("Connection established");
}        
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照

Socket.Connect メソッド (IPAddress, Int32)

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

リモート ホストへの接続確立します。ホストは、IP アドレスポート番号指定されます。

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

例外例外
例外種類条件

ArgumentNullException

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

ArgumentOutOfRangeException

ポート番号無効です。

SocketException

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

ObjectDisposedException

Socket閉じられています。

NotSupportedException

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

ArgumentException

address長さが 0 です。

InvalidOperationException

SocketListen実行中です。

解説解説

TCP などのコネクション指向プロトコル使用している場合Connect メソッドは LocalEndPoint と指定したリモート エンドポイント間のネットワーク接続同期的確立します。コネクションレスプロトコル使用している場合Connect既定リモート ホスト確立します。Connect呼び出したら、Send メソッド使用してリモート デバイスデータ送信できますまた、Receive メソッド使用してリモート デバイスからデータ受信することもできます

UDP などのコネクションレスプロトコル使用している場合は、データ送受信する前に Connect呼び出す必要はありません。リモート ホストとの同期通信には、SendTo および ReceiveFrom を使用できますConnect呼び出した場合指定した既定アドレス以外から送信されデータグラムはすべて破棄されます。既定リモート ホストブロードキャスト アドレス設定する場合は、最初に SetSocketOption メソッド呼び出しソケット オプションを SocketOptionName.Broadcast に設定する必要がありますこのように設定しないと、ConnectSocketExceptionスローます。SocketException発生した場合は、SocketException.ErrorCode プロパティ使用して具体的なエラー コード取得してください。このコード取得したら、Windows Socket Version 2 API エラー コードマニュアルかエラー詳細情報確認してください。これは MSDN ライブラリから入手できます

Connect呼び出す前に Blocking プロパティfalse設定しないと、Connect メソッドブロックしますTCP などのコネクション指向プロトコル使用しており、ブロック無効にしている場合Connect には接続確立するための時間が必要です。このためSocketExceptionスローます。一方コネクションレスプロトコルは、既定リモート ホスト確立するだけであるため、例外スローしません。SocketException.ErrorCode使用すると、特定のエラー コード取得できます。このコード取得したら、Windows Socket Version 2 API エラー コードドキュメントエラー詳細情報確認してください。これは MSDN ライブラリから入手できますエラーが WSAEWOULDBLOCK を返した場合リモート ホスト接続コネクション指向Socket によって開始されていますが、正常に完了していません。Poll メソッド使用してSocket がいつ接続完了するかを確認します

メモメモ

コネクション指向プロトコル使用しており、Connect前に Bind呼び出さなかった場合は、基になるサービス プロバイダローカル ネットワーク アドレスポート番号割り当てますコネクションレスプロトコル使用している場合は、送受信操作完了するまで、サービス プロバイダローカル ネットワーク アドレスポート番号割り当てません。既定リモート ホスト変更する必要がある場合は、必要なエンドポイントConnect再度呼び出します。

メモメモ

ソケット接続が既に解除されていた場合、このメソッド使って接続復元することはできません。いずれか非同期 BeginConnect メソッド使用して再接続してください。これは、基になるプロバイダ制限です。

使用例使用例

リモート エンドポイント接続し接続検証するコード例次に示します

// Synchronous connect using IPAddress to resolve the 
// host name.
public static void Connect1(string
 host, int port)
{
    IPAddress[] IPs = Dns.GetHostAddresses(host);

    Socket s = new Socket(AddressFamily.InterNetwork,
        SocketType.Stream,
        ProtocolType.Tcp);
 
    Console.WriteLine("Establishing Connection to {0}", 
        host);
    s.Connect(IPs[0], port);
    Console.WriteLine("Connection established");
}        
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照

Socket.Connect メソッド (String, Int32)

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

リモート ホストへの接続確立します。ホストは、ホスト名ポート番号指定されます。

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

例外例外
例外種類条件

ArgumentNullException

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

ArgumentOutOfRangeException

ポート番号無効です。

SocketException

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

ObjectDisposedException

Socket閉じられています。

NotSupportedException

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

InvalidOperationException

SocketListen実行中です。

解説解説

TCP などのコネクション指向プロトコル使用している場合Connect メソッドは LocalEndPoint と指定したリモート ホスト間のネットワーク接続同期的確立します。コネクションレスプロトコル使用している場合Connect既定リモート ホスト確立します。Connect呼び出したら、Send メソッド使用してリモート デバイスデータ送信できますまた、Receive メソッド使用してリモート デバイスからデータ受信することもできます

UDP などのコネクションレスプロトコル使用している場合は、データ送受信する前に Connect呼び出す必要はありません。リモート ホストとの同期通信には、SendTo および ReceiveFrom を使用できますConnect呼び出した場合指定した既定アドレス以外から送信されデータグラムはすべて破棄されます。既定リモート ホストブロードキャスト アドレス設定する場合は、最初に SetSocketOption メソッド呼び出しソケット オプションを SocketOptionName.Broadcast に設定する必要がありますこのように設定しないと、ConnectSocketExceptionスローます。SocketException発生した場合は、SocketException.ErrorCode プロパティ使用して具体的なエラー コード取得してください。このコード取得したら、Windows Socket Version 2 API エラー コードマニュアルかエラー詳細情報確認してください。これは MSDN ライブラリから入手できます

Connect呼び出す前に Blocking プロパティfalse設定しないと、Connect メソッドブロックしますTCP などのコネクション指向プロトコル使用しており、ブロック無効にしている場合Connect には接続確立するための時間が必要です。このためSocketExceptionスローます。一方コネクションレスプロトコルは、既定リモート ホスト確立するだけであるため、例外スローしません。SocketException.ErrorCode使用すると、特定のエラー コード取得できます。このコード取得したら、Windows Socket Version 2 API エラー コードドキュメントエラー詳細情報確認してください。これは MSDN ライブラリから入手できますエラーが WSAEWOULDBLOCK を返した場合リモート ホスト接続コネクション指向Socket によって開始されていますが、正常に完了していません。Poll メソッド使用してSocket がいつ接続完了するかを確認します

メモメモ

コネクション指向プロトコル使用しており、Connect前に Bind呼び出さなかった場合は、基になるサービス プロバイダローカル ネットワーク アドレスポート番号割り当てますコネクションレスプロトコル使用している場合は、送受信操作完了するまで、サービス プロバイダローカル ネットワーク アドレスポート番号割り当てません。既定リモート ホスト変更する必要がある場合は、必要なエンドポイントConnect再度呼び出します。

メモメモ

ソケット接続が既に解除されていた場合、このメソッド使って接続復元することはできません。いずれか非同期 BeginConnect メソッド使用して再接続してください。これは、基になるプロバイダ制限です。

使用例使用例

リモート エンドポイント接続し接続検証するコード例次に示します

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

    Console.WriteLine("Establishing Connection to {0}", 
        host);
    s.Connect(host, port);
    Console.WriteLine("Connection established");
}        
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照

Socket.Connect メソッド


Socket.Connect メソッド (EndPoint)

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

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

Dim instance As Socket
Dim remoteEP As EndPoint

instance.Connect(remoteEP)
public:
void Connect (
    EndPoint^ remoteEP
)

パラメータ

remoteEP

リモート デバイスを表す EndPoint

例外例外
例外種類条件

ArgumentNullException

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

SocketException

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

ObjectDisposedException

Socket閉じられています。

SecurityException

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

InvalidOperationException

SocketListen実行中です。

解説解説

TCP などのコネクション指向プロトコル使用している場合Connect メソッドは LocalEndPoint と指定したリモート エンドポイント間のネットワーク接続同期的確立します。コネクションレスプロトコル使用している場合Connect既定リモート ホスト確立します。Connect呼び出したら、Send メソッド使用してリモート デバイスデータ送信できますまた、Receive メソッド使用してリモート デバイスからデータ受信することもできます

UDP などのコネクションレスプロトコル使用している場合は、データ送受信する前に Connect呼び出す必要はありません。リモート ホストとの同期通信には、SendTo および ReceiveFrom を使用できますConnect呼び出した場合指定した既定アドレス以外から送信されデータグラムはすべて破棄されます。既定リモート ホストブロードキャスト アドレス設定する場合は、最初に SetSocketOption メソッド呼び出しソケット オプションを SocketOptionName.Broadcast に設定する必要がありますこのように設定しないと、ConnectSocketExceptionスローます。SocketException発生した場合は、SocketException.ErrorCode プロパティ使用して具体的なエラー コード取得してください。このコード取得したら、Windows Socket Version 2 API エラー コードマニュアルかエラー詳細情報確認してください。これは MSDN ライブラリから入手できます

Connect呼び出す前に Blocking プロパティfalse設定しないと、Connect メソッドブロックしますTCP などのコネクション指向プロトコル使用しており、ブロック無効にしている場合Connect には接続確立するための時間が必要です。このためSocketExceptionスローます。一方コネクションレスプロトコルは、既定リモート ホスト確立するだけであるため、例外スローしません。SocketException.ErrorCode使用すると、特定のエラー コード取得できます。このコード取得したら、Windows Socket Version 2 API エラー コードドキュメントエラー詳細情報確認してください。これは MSDN ライブラリから入手できますエラーが WSAEWOULDBLOCK を返した場合リモート ホスト接続コネクション指向Socket によって開始されていますが、正常に完了していません。Poll メソッド使用してSocket がいつ接続完了するかを確認します

メモメモ

コネクション指向プロトコル使用しており、Connect前に Bind呼び出さなかった場合は、基になるサービス プロバイダローカル ネットワーク アドレスポート番号割り当てますコネクションレスプロトコル使用している場合は、送受信操作完了するまで、サービス プロバイダローカル ネットワーク アドレスポート番号割り当てません。既定リモート ホスト変更する必要がある場合は、必要なエンドポイントConnect再度呼び出します。

メモメモ

ソケット接続が既に解除されていた場合、このメソッド使って接続復元することはできません。いずれか非同期 BeginConnect メソッド使用して再接続してください。これは、基になるプロバイダ制限です。

使用例使用例

リモート エンドポイント接続し接続検証するコード例次に示します

    ' .Connect throws an exception if unsuccessful
    client.Connect(anEndPoint)
    
    ' This is how you can determine whether a socket is still connected.
    Dim blockingState As Boolean
 = client.Blocking
    Try
        Dim tmp(0) As Byte
        
        client.Blocking = False
        client.Send(tmp, 0, 0)
        Console.WriteLine("Connected!")
    Catch e As SocketException
        ' 10035 == WSAEWOULDBLOCK
        If e.NativeErrorCode.Equals(10035) Then
            Console.WriteLine("Still Connected, but the Send would
 block")
        Else
            Console.WriteLine("Disconnected: error code {0}!",
 e.NativeErrorCode)
        End If
    Finally
        client.Blocking = blockingState
    End Try
    
    Console.WriteLine("Connected: {0}", client.Connected)

End Sub 'ConnectAndCheck
// .Connect throws an exception if unsuccessful
client.Connect(anEndPoint);

// This is how you can determine whether a socket is still connected.
bool blockingState = client.Blocking;
try
{
    byte [] tmp = new byte[1];

    client.Blocking = false;
    client.Send(tmp, 0, 0);
    Console.WriteLine("Connected!");
}
catch (SocketException e) 
{
    // 10035 == WSAEWOULDBLOCK
    if (e.NativeErrorCode.Equals(10035))
        Console.WriteLine("Still Connected, but the Send would block");
    else
    {
        Console.WriteLine("Disconnected: error code {0}!", e.NativeErrorCode);
    }
}
finally
{
    client.Blocking = blockingState;
}

 Console.WriteLine("Connected: {0}", client.Connected);
client->Connect( anEndPoint );
if (  !client->Connected )
{
   Console::WriteLine( "Winsock error: {0}", Convert::ToString(
      System::Runtime::InteropServices::Marshal::GetLastWin32Error() ) );
}
   
// This is how you can determine whether a socket is still connected.
bool blockingState = client->Blocking;
try
{
   array<Byte>^tmp = gcnew array<Byte>(1);
   client->Blocking = false;
   client->Send( tmp, 0, static_cast<SocketFlags>(0) );
   Console::WriteLine( L"Connected!" );
}
catch ( SocketException^ e ) 
{
   // 10035 == WSAEWOULDBLOCK
   if ( e->NativeErrorCode.Equals( 10035 ) )
   {
      Console::WriteLine( "Connected from an exception!" );
   }
   else
   {
      Console::WriteLine( "Disconnected: {0}!", e->NativeErrorCode );
   }
}
finally
{
   client->Blocking = blockingState;
}

Console::WriteLine( "Connected: {0}", client->Connected );
.NET Framework のセキュリティ.NET Frameworkセキュリティ
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照
関連項目
Socket クラス
Socket メンバ
System.Net.Sockets 名前空間
Send
SendTo
Receive
ReceiveFrom
LocalEndPoint
SetSocketOption
Blocking
Poll


このページでは「.NET Framework クラス ライブラリ リファレンス」からSocket.Connect メソッドを検索した結果を表示しています。
Weblioに収録されているすべての辞書からSocket.Connect メソッドを検索する場合は、下記のリンクをクリックしてください。
 全ての辞書からSocket.Connect メソッド を検索

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

辞書ショートカット

すべての辞書の索引

「Socket.Connect メソッド」の関連用語

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

   

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



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

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

©2024 GRAS Group, Inc.RSS