Socket.Connected Socket.Connected Socket.Connected Socket.Connected Property

定義

最後に実行された Send 操作または Receive 操作の時点で、Socket がリモート ホストに接続されていたかどうかを示す値を取得します。Gets a value that indicates whether a Socket is connected to a remote host as of the last Send or Receive operation.

public:
 property bool Connected { bool get(); };
public bool Connected { get; }
member this.Connected : bool
Public ReadOnly Property Connected As Boolean

プロパティ値

最後に実行された操作の時点で、Socket がリモート リソースに接続されていた場合は true。それ以外の場合は falsetrue if the Socket was connected to a remote resource as of the most recent operation; otherwise, false.

次のコード例は、リモート エンドポイントをチェックする接続、Connectedプロパティ、および接続の現在の状態を確認します。The following code example connects to a remote endpoint, checks the Connected property, and checks the current state of 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 'ConnectAndCheck

注釈

Connectedプロパティの接続の状態の取得、Socket最後の I/O 操作の時点でします。The Connected property gets the connection state of the Socket as of the last I/O operation. 返す場合falseSocketされたか、接続していない、または接続されていません。When it returns false, the Socket was either never connected, or is no longer connected.

値、Connectedプロパティには、最新の操作の時点で接続の状態が反映されます。The value of the Connected property reflects the state of the connection as of the most recent operation. 接続の現在の状態を確認する必要がある場合は、呼び出し、ゼロ バイトの非ブロッキング送信をください。If you need to determine the current state of the connection, make a nonblocking, zero-byte Send call. 呼び出しは正常に終了または WAEWOULDBLOCK エラー コード (10035) をスローします。 は、ソケットが接続されているまま;それ以外の場合、ソケットが接続していません。If the call returns successfully or throws a WAEWOULDBLOCK error code (10035), then the socket is still connected; otherwise, the socket is no longer connected.

呼び出す場合Connect、ユーザー データグラム プロトコル (UDP) のソケットで、Connectedプロパティは常に返しますtrue。 ただし、この操作には、UDP のコネクションレス型固有の性質は変わりません。If you call Connect on a User Datagram Protocol (UDP) socket, the Connected property always returns true; however, this action does not change the inherent connectionless nature of UDP.

適用対象