Socket.Connect Socket.Connect Socket.Connect Socket.Connect Method

定義

リモート ホストへの接続を確立します。Establishes a connection to a remote host.

オーバーロード

Connect(String, Int32) Connect(String, Int32) Connect(String, Int32) Connect(String, Int32)

リモート ホストへの接続を確立します。Establishes a connection to a remote host. ホストはホスト名とポート番号で指定されます。The host is specified by a host name and a port number.

Connect(IPAddress[], Int32) Connect(IPAddress[], Int32) Connect(IPAddress[], Int32) Connect(IPAddress[], Int32)

リモート ホストへの接続を確立します。Establishes a connection to a remote host. ホストは、IP アドレスの配列とポート番号で指定されます。The host is specified by an array of IP addresses and a port number.

Connect(IPAddress, Int32) Connect(IPAddress, Int32) Connect(IPAddress, Int32) Connect(IPAddress, Int32)

リモート ホストへの接続を確立します。Establishes a connection to a remote host. ホストは、IP アドレスとポート番号で指定されます。The host is specified by an IP address and a port number.

Connect(EndPoint) Connect(EndPoint) Connect(EndPoint) Connect(EndPoint)

リモート ホストへの接続を確立します。Establishes a connection to a remote host.

Connect(String, Int32) Connect(String, Int32) Connect(String, Int32) Connect(String, Int32)

リモート ホストへの接続を確立します。Establishes a connection to a remote host. ホストはホスト名とポート番号で指定されます。The host is specified by a host name and a port number.

public:
 void Connect(System::String ^ host, int port);
public void Connect (string host, int port);
member this.Connect : string * int -> unit
Public Sub Connect (host As String, port As Integer)

パラメーター

host
String String String String

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

port
Int32 Int32 Int32 Int32

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

例外

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

このメソッドは、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).

次のコード例では、リモートエンドポイントに接続し、接続を確認します。The following code example connects to a remote endpoint and then verifies the connection.

// Synchronous connect using host name (resolved by the 
// Connect call.)
static void Connect3( String^ host, int port )
{
   Socket^ s = gcnew Socket( AddressFamily::InterNetwork,SocketType::Stream,ProtocolType::Tcp );
   Console::WriteLine( "Establishing Connection to {0}", host );
   s->Connect( host, port );
   Console::WriteLine( "Connection established" );
}

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

注釈

TCP などの接続指向プロトコルを使用している場合、メソッドConnectは、と指定されたLocalEndPointリモートホストの間のネットワーク接続を同期的に確立します。If you are using a connection-oriented protocol such as TCP, the Connect method synchronously establishes a network connection between LocalEndPoint and the specified remote host. コネクションレスプロトコルを使用しているConnect場合は、によって既定のリモートホストが確立されます。If you are using a connectionless protocol, Connect establishes a default remote host. を呼び出すConnectと、 Sendメソッドを使用してリモートデバイスにデータを送信したり、リモートデバイスからReceiveメソッドを使用してデータを受信したりすることができます。After you call Connect you can send data to the remote device with the Send method, or receive data from the remote device with the Receive method.

UDP などのコネクションレスプロトコルを使用している場合は、データを送受信Connectする前にを呼び出す必要はありません。If you are using a connectionless protocol such as UDP, you do not have to call Connect before sending and receiving data. SendTo およびReceiveFromを使用して、リモートホストと同期的に通信することができます。You can use SendTo and ReceiveFrom to synchronously communicate with a remote host. 指定した以外Connectのアドレスから受信したデータグラムを呼び出すと、指定した既定値は破棄されます。If you do call Connect any datagrams that arrive from an address other than the specified default will be discarded. 既定のリモートホストをブロードキャストアドレスに設定するSetSocketOption場合はConnect 、最初にメソッドを呼び出し、ソケットオプションをにSocketOptionName.Broadcast設定する必要がありSocketExceptionます。これを行わないと、がスローされます。If you want to set your default remote host to a broadcast address, you must first call the SetSocketOption method and set the socket option to SocketOptionName.Broadcast, or Connect will throw a SocketException. 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.

Connectを呼び出すBlocking false 前にプロパティをに明示的に設定しない限り、メソッドはConnectブロックします。Connect method will block, unless you specifically set the Blocking property to false prior to calling Connect. TCP のような接続指向プロトコルを使用していて、ブロックを無効ConnectにしたSocketException場合、は接続に時間がかかるため、をスローします。If you are using a connection-oriented protocol like TCP and you do disable blocking, Connect will throw a SocketException because it needs time to make the connection. コネクションレスプロトコルは、既定のリモートホストを確立するだけなので、例外をスローしません。Connectionless protocols will not throw an exception because they simply establish a default remote host. を使用SocketException.ErrorCodeすると、特定のエラーコードを取得できます。You can use SocketException.ErrorCode 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. エラーによって WSAEWOULDBLOCK が返された場合、リモートホスト接続は接続指向Socketで開始されていますが、まだ正常に完了していません。If the error returned WSAEWOULDBLOCK, the remote host connection has been initiated by a connection-oriented Socket, but has not yet completed successfully. メソッドを使用して、 Socketが接続を終了したことを確認します。 PollUse the Poll method to determine when the Socket is finished connecting.

Ipv6 を有効にしConnect(String, Int32) 、メソッドを呼び出して、ipv6 と ipv4 の両方のアドレスに解決されるホストに接続する場合は、ipv4 アドレスの前に ipv6 アドレスへの接続が最初に試行されます。If IPv6 is enabled and the Connect(String, Int32) method is called to connect to a host that resolves to both IPv6 and IPv4 addresses, the connection to the IPv6 address will be attempted first before the IPv4 address. ホストが IPv6 アドレスでリッスンしていない場合、接続の確立に時間がかかることがあります。This may have the effect of delaying the time to establish the connection if the host is not listening on the IPv6 address.

注意

接続指向プロトコルを使用していて、を呼び出すBind Connect前にを呼び出さなかった場合は、基になるサービスプロバイダーによってローカルネットワークアドレスとポート番号が割り当てられます。If you are using a connection-oriented protocol and did not call Bind before calling Connect, the underlying service provider will assign the local network address and port number. コネクションレスプロトコルを使用している場合、送信または受信操作が完了するまで、サービスプロバイダーはローカルネットワークアドレスとポート番号を割り当てません。If you are using a connectionless protocol, the service provider will not assign a local network address and port number until you complete a send or receive operation. 既定のリモートホストを変更する場合は、目的Connectのエンドポイントでもう一度を呼び出します。If you want to change the default remote host, call Connect again with the desired endpoint.

注意

ソケットが既に切断されている場合は、この方法を使用して接続を復元することはできません。If the socket has been previously disconnected, then you cannot use this method to restore the connection. いずれかの非同期BeginConnectメソッドを使用して再接続します。Use one of the asynchronous BeginConnect methods to reconnect. これは、基になるプロバイダーの制限です。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.

Connect(IPAddress[], Int32) Connect(IPAddress[], Int32) Connect(IPAddress[], Int32) Connect(IPAddress[], Int32)

リモート ホストへの接続を確立します。Establishes a connection to a remote host. ホストは、IP アドレスの配列とポート番号で指定されます。The host is specified by an array of IP addresses and a port number.

public:
 void Connect(cli::array <System::Net::IPAddress ^> ^ addresses, int port);
public void Connect (System.Net.IPAddress[] addresses, int port);
member this.Connect : System.Net.IPAddress[] * int -> unit
Public Sub Connect (addresses As IPAddress(), port As Integer)

パラメーター

addresses
IPAddress[]

リモート ホストの IP アドレス。The IP addresses of the remote host.

port
Int32 Int32 Int32 Int32

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

例外

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

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

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

SocketListen(Int32) を呼び出すことでリッスン状態になっています。The Socket has been placed in a listening state by calling Listen(Int32).

次のコード例では、リモートエンドポイントに接続し、接続を確認します。The following code example connects to a remote endpoint and then verifies the connection.

// Synchronous connect using Dns.ResolveToAddresses to 
// resolve the host name.
static void Connect2( String^ host, int port )
{
   array<IPAddress^>^IPs = Dns::GetHostAddresses( host );
   Socket^ s = gcnew Socket( AddressFamily::InterNetwork,SocketType::Stream,ProtocolType::Tcp );
   Console::WriteLine( "Establishing Connection to {0}", host );
   s->Connect( IPs, port );
   Console::WriteLine( "Connection established" );
}


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

注釈

このメソッドは、通常、1つのホストGetHostAddressesに対して複数の IP アドレスを返すことができるの呼び出しの直後に使用されます。This method is typically used immediately after a call to GetHostAddresses, which can return multiple IP addresses for a single host. TCP などの接続指向プロトコルを使用している場合、メソッドConnectは、と指定されたLocalEndPointリモートエンドポイントとの間のネットワーク接続を同期的に確立します。If you are using a connection-oriented protocol such as TCP, the Connect method synchronously establishes a network connection between LocalEndPoint and the specified remote endpoint. コネクションレスプロトコルを使用しているConnect場合は、によって既定のリモートホストが確立されます。If you are using a connectionless protocol, Connect establishes a default remote host. を呼び出すConnectと、 Sendメソッドを使用してリモートデバイスにデータを送信したり、リモートデバイスからReceiveメソッドを使用してデータを受信したりすることができます。After you call Connect you can send data to the remote device with the Send method, or receive data from the remote device with the Receive method.

UDP などのコネクションレスプロトコルを使用している場合は、データを送受信Connectする前にを呼び出す必要はありません。If you are using a connectionless protocol such as UDP, you do not have to call Connect before sending and receiving data. SendTo およびReceiveFromを使用して、リモートホストと同期的に通信することができます。You can use SendTo and ReceiveFrom to synchronously communicate with a remote host. 指定した以外Connectのアドレスから受信したデータグラムを呼び出すと、指定した既定値は破棄されます。If you do call Connect any datagrams that arrive from an address other than the specified default will be discarded. 既定のリモートホストをブロードキャストアドレスに設定するSetSocketOption場合はConnect 、最初にメソッドを呼び出し、ソケットオプションをにSocketOptionName.Broadcast設定する必要がありSocketExceptionます。これを行わないと、がスローされます。If you want to set your default remote host to a broadcast address, you must first call the SetSocketOption method and set the socket option to SocketOptionName.Broadcast, or Connect will throw a SocketException. 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.

Connectを呼び出すBlocking false 前にプロパティをに明示的に設定しない限り、メソッドはConnectブロックします。Connect method will block, unless you specifically set the Blocking property to false prior to calling Connect. TCP のような接続指向プロトコルを使用していて、ブロックを無効ConnectにしたSocketException場合、は接続に時間がかかるため、をスローします。If you are using a connection-oriented protocol like TCP and you do disable blocking, Connect will throw a SocketException because it needs time to make the connection. コネクションレスプロトコルは、既定のリモートホストを確立するだけなので、例外をスローしません。Connectionless protocols will not throw an exception because they simply establish a default remote host. を使用SocketException.ErrorCodeすると、特定のエラーコードを取得できます。You can use SocketException.ErrorCode 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. エラーによって WSAEWOULDBLOCK が返された場合、リモートホスト接続は接続指向Socketで開始されていますが、まだ正常に完了していません。If the error returned WSAEWOULDBLOCK, the remote host connection has been initiated by a connection-oriented Socket, but has not yet completed successfully. メソッドを使用して、 Socketが接続を終了したことを確認します。 PollUse the Poll method to determine when the Socket is finished connecting.

注意

接続指向プロトコルを使用していて、を呼び出すBind Connect前にを呼び出さなかった場合は、基になるサービスプロバイダーによってローカルネットワークアドレスとポート番号が割り当てられます。If you are using a connection-oriented protocol and did not call Bind before calling Connect, the underlying service provider will assign the local network address and port number. コネクションレスプロトコルを使用している場合、送信または受信操作が完了するまで、サービスプロバイダーはローカルネットワークアドレスとポート番号を割り当てません。If you are using a connectionless protocol, the service provider will not assign a local network address and port number until you complete a send or receive operation. 既定のリモートホストを変更する場合は、目的Connectのエンドポイントでもう一度を呼び出します。If you want to change the default remote host, call Connect again with the desired endpoint.

注意

ソケットが既に切断されている場合は、この方法を使用して接続を復元することはできません。If the socket has been previously disconnected, then you cannot use this method to restore the connection. いずれかの非同期BeginConnectメソッドを使用して再接続します。Use one of the asynchronous BeginConnect methods to reconnect. これは、基になるプロバイダーの制限です。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.

Connect(IPAddress, Int32) Connect(IPAddress, Int32) Connect(IPAddress, Int32) Connect(IPAddress, Int32)

リモート ホストへの接続を確立します。Establishes a connection to a remote host. ホストは、IP アドレスとポート番号で指定されます。The host is specified by an IP address and a port number.

public:
 void Connect(System::Net::IPAddress ^ address, int port);
public void Connect (System.Net.IPAddress address, int port);
member this.Connect : System.Net.IPAddress * int -> unit
Public Sub Connect (address As IPAddress, port As Integer)

パラメーター

address
IPAddress IPAddress IPAddress IPAddress

リモート ホストの IP アドレス。The IP address of the remote host.

port
Int32 Int32 Int32 Int32

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

例外

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

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

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

SocketListen(Int32) を呼び出すことでリッスン状態になっています。The Socket has been placed in a listening state by calling Listen(Int32).

次のコード例では、リモートエンドポイントに接続し、接続を確認します。The following code example connects to a remote endpoint and then verifies the connection.

// Synchronous connect using IPAddress to resolve the 
// host name.
static void Connect1( String^ host, int port )
{
   array<IPAddress^>^IPs = Dns::GetHostAddresses( host );
   Socket^ s = gcnew Socket( AddressFamily::InterNetwork,SocketType::Stream,ProtocolType::Tcp );
   Console::WriteLine( "Establishing Connection to {0}", host );
   s->Connect( IPs[ 0 ], port );
   Console::WriteLine( "Connection established" );
}


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

注釈

TCP などの接続指向プロトコルを使用している場合、メソッドConnectは、と指定されたLocalEndPointリモートエンドポイントとの間のネットワーク接続を同期的に確立します。If you are using a connection-oriented protocol such as TCP, the Connect method synchronously establishes a network connection between LocalEndPoint and the specified remote endpoint. コネクションレスプロトコルを使用しているConnect場合は、によって既定のリモートホストが確立されます。If you are using a connectionless protocol, Connect establishes a default remote host. を呼び出すConnectと、 Sendメソッドを使用してリモートデバイスにデータを送信したり、リモートデバイスからReceiveメソッドを使用してデータを受信したりすることができます。After you call Connect you can send data to the remote device with the Send method, or receive data from the remote device with the Receive method.

UDP などのコネクションレスプロトコルを使用している場合は、データを送受信Connectする前にを呼び出す必要はありません。If you are using a connectionless protocol such as UDP, you do not have to call Connect before sending and receiving data. SendTo およびReceiveFromを使用して、リモートホストと同期的に通信することができます。You can use SendTo and ReceiveFrom to synchronously communicate with a remote host. 指定した以外Connectのアドレスから受信したデータグラムを呼び出すと、指定した既定値は破棄されます。If you do call Connect any datagrams that arrive from an address other than the specified default will be discarded. 既定のリモートホストをブロードキャストアドレスに設定するSetSocketOption場合はConnect 、最初にメソッドを呼び出し、ソケットオプションをにSocketOptionName.Broadcast設定する必要がありSocketExceptionます。これを行わないと、がスローされます。If you want to set your default remote host to a broadcast address, you must first call the SetSocketOption method and set the socket option to SocketOptionName.Broadcast, or Connect will throw a SocketException. 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.

Connectを呼び出すBlocking false 前にプロパティをに明示的に設定しない限り、メソッドはConnectブロックします。Connect method will block, unless you specifically set the Blocking property to false prior to calling Connect. TCP のような接続指向プロトコルを使用していて、ブロックを無効ConnectにしたSocketException場合、は接続に時間がかかるため、をスローします。If you are using a connection-oriented protocol like TCP and you do disable blocking, Connect will throw a SocketException because it needs time to make the connection. コネクションレスプロトコルは、既定のリモートホストを確立するだけなので、例外をスローしません。Connectionless protocols will not throw an exception because they simply establish a default remote host. を使用SocketException.ErrorCodeすると、特定のエラーコードを取得できます。You can use SocketException.ErrorCode 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. エラーによって WSAEWOULDBLOCK が返された場合、リモートホスト接続は接続指向Socketで開始されていますが、まだ正常に完了していません。If the error returned WSAEWOULDBLOCK, the remote host connection has been initiated by a connection-oriented Socket, but has not yet completed successfully. メソッドを使用して、 Socketが接続を終了したことを確認します。 PollUse the Poll method to determine when the Socket is finished connecting.

注意

接続指向プロトコルを使用していて、を呼び出すBind Connect前にを呼び出さなかった場合は、基になるサービスプロバイダーによってローカルネットワークアドレスとポート番号が割り当てられます。If you are using a connection-oriented protocol and did not call Bind before calling Connect, the underlying service provider will assign the local network address and port number. コネクションレスプロトコルを使用している場合、送信または受信操作が完了するまで、サービスプロバイダーはローカルネットワークアドレスとポート番号を割り当てません。If you are using a connectionless protocol, the service provider will not assign a local network address and port number until you complete a send or receive operation. 既定のリモートホストを変更する場合は、目的Connectのエンドポイントでもう一度を呼び出します。If you want to change the default remote host, call Connect again with the desired endpoint.

注意

ソケットが既に切断されている場合は、この方法を使用して接続を復元することはできません。If the socket has been previously disconnected, then you cannot use this method to restore the connection. いずれかの非同期BeginConnectメソッドを使用して再接続します。Use one of the asynchronous BeginConnect methods to reconnect. これは、基になるプロバイダーの制限です。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.

Connect(EndPoint) Connect(EndPoint) Connect(EndPoint) Connect(EndPoint)

リモート ホストへの接続を確立します。Establishes a connection to a remote host.

public:
 void Connect(System::Net::EndPoint ^ remoteEP);
public void Connect (System.Net.EndPoint remoteEP);
member this.Connect : System.Net.EndPoint -> unit
Public Sub Connect (remoteEP As EndPoint)

パラメーター

remoteEP
EndPoint EndPoint EndPoint EndPoint

リモート デバイスを表す EndPointAn EndPoint that represents the remote device.

例外

ソケットへのアクセスを試行しているときにエラーが発生しました。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).

次のコード例では、リモートエンドポイントに接続し、接続を確認します。The following code example connects to a remote endpoint and then verifies the connection.

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 );
// .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);
    ' .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

注釈

TCP などの接続指向プロトコルを使用している場合、メソッドConnectは、と指定されたLocalEndPointリモートエンドポイントとの間のネットワーク接続を同期的に確立します。If you are using a connection-oriented protocol such as TCP, the Connect method synchronously establishes a network connection between LocalEndPoint and the specified remote endpoint. コネクションレスプロトコルを使用しているConnect場合は、によって既定のリモートホストが確立されます。If you are using a connectionless protocol, Connect establishes a default remote host. を呼び出しConnectた後、 Sendメソッドを使用してリモートデバイスにデータを送信したり、 Receiveメソッドを使用してリモートデバイスからデータを受信したりすることができます。After you call Connect, you can send data to the remote device with the Send method, or receive data from the remote device with the Receive method.

UDP などのコネクションレスプロトコルを使用している場合は、データを送受信Connectする前にを呼び出す必要はありません。If you are using a connectionless protocol such as UDP, you do not have to call Connect before sending and receiving data. SendTo およびReceiveFromを使用して、リモートホストと同期的に通信することができます。You can use SendTo and ReceiveFrom to synchronously communicate with a remote host. を呼び出すConnectと、指定された既定以外のアドレスから到着したデータグラムはすべて破棄されます。If you do call Connect, any datagrams that arrive from an address other than the specified default will be discarded. 既定のリモートホストをブロードキャストアドレスに設定するSetSocketOption場合はConnect 、最初にメソッドを呼び出し、ソケットオプションをにSocketOptionName.Broadcast設定する必要がありSocketExceptionます。これを行わないと、がスローされます。If you want to set your default remote host to a broadcast address, you must first call the SetSocketOption method and set the socket option to SocketOptionName.Broadcast, or Connect will throw a SocketException. 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.

を呼び出すBlocking Connect 前にプロパティfalseをに明示的に設定しない限り、メソッドはブロックされます。 ConnectThe Connect method will block, unless you specifically set the Blocking property to false prior to calling Connect. TCP のような接続指向プロトコルを使用していて、ブロックを無効ConnectにしたSocketException場合、は接続に時間がかかるため、をスローします。If you are using a connection-oriented protocol like TCP and you do disable blocking, Connect will throw a SocketException because it needs time to make the connection. コネクションレスプロトコルは、既定のリモートホストを確立するだけなので、例外をスローしません。Connectionless protocols will not throw an exception because they simply establish a default remote host. を使用SocketException.ErrorCodeすると、特定のエラーコードを取得できます。You can use SocketException.ErrorCode 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. エラーによって WSAEWOULDBLOCK が返された場合、リモートホスト接続は接続指向Socketで開始されていますが、まだ正常に完了していません。If the error returned WSAEWOULDBLOCK, the remote host connection has been initiated by a connection-oriented Socket, but has not yet completed successfully. メソッドを使用して、 Socketが接続を終了したことを確認します。 PollUse the Poll method to determine when the Socket is finished connecting.

注意

接続指向プロトコルを使用していて、を呼び出すBind Connect前にを呼び出さなかった場合は、基になるサービスプロバイダーによってローカルネットワークアドレスとポート番号が割り当てられます。If you are using a connection-oriented protocol and did not call Bind before calling Connect, the underlying service provider will assign the local network address and port number. コネクションレスプロトコルを使用している場合、送信または受信操作が完了するまで、サービスプロバイダーはローカルネットワークアドレスとポート番号を割り当てません。If you are using a connectionless protocol, the service provider will not assign a local network address and port number until you complete a send or receive operation. 既定のリモートホストを変更する場合は、目的Connectのエンドポイントでもう一度を呼び出します。If you want to change the default remote host, call Connect again with the desired endpoint.

注意

ソケットが既に切断されている場合は、この方法を使用して接続を復元することはできません。If the socket has been previously disconnected, then you cannot use this method to restore the connection. いずれかの非同期BeginConnectメソッドを使用して再接続します。Use one of the asynchronous BeginConnect methods to reconnect. これは、基になるプロバイダーの制限です。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.

セキュリティ

SocketPermission
リモートホストに接続するために使用します。for connecting to the remote host. 関連付けられた列挙型:ConnectAssociated enumeration: Connect

こちらもご覧ください

適用対象