TcpState Výčet

Definice

Určuje stavy připojení TCP (Transmission Control Protocol).

public enum class TcpState
public enum TcpState
type TcpState = 
Public Enum TcpState
Dědičnost
TcpState

Pole

Closed 1

Připojení TCP je ukončeno.

CloseWait 8

Místní koncový bod připojení TCP čeká na žádost o ukončení připojení od místního uživatele.

Closing 9

Místní koncový bod připojení TCP čeká na potvrzení dříve odeslané žádosti o ukončení připojení.

DeleteTcb 12

Vyrovnávací paměť řízení přenosu (TCB) pro připojení TCP se odstraňuje.

Established 5

Metodu handshake protokolu TCP je dokončena. Připojení bylo navázáno a je možné odesílat data.

FinWait1 6

Místní koncový bod připojení TCP čeká na žádost o ukončení připojení ze vzdáleného koncového bodu nebo na potvrzení dříve odeslané žádosti o ukončení připojení.

FinWait2 7

Místní koncový bod připojení TCP čeká na žádost o ukončení připojení ze vzdáleného koncového bodu.

LastAck 10

Místní koncový bod připojení TCP čeká na konečné potvrzení dříve odeslané žádosti o ukončení připojení.

Listen 2

Místní koncový bod připojení TCP naslouchá žádosti o připojení z libovolného vzdáleného koncového bodu.

SynReceived 4

Místní koncový bod připojení TCP odeslal a přijal žádost o připojení a čeká na potvrzení.

SynSent 3

Místní koncový bod připojení TCP odeslal vzdálenému koncovému bodu hlavičku segmentu s nastaveným bitem synchronizace (SYN) a čeká na odpovídající žádost o připojení.

TimeWait 11

Místní koncový bod připojení TCP čeká dostatek času na to, aby se zajistilo, že vzdálený koncový bod přijal potvrzení žádosti o ukončení připojení.

Unknown 0

Stav připojení TCP je neznámý.

Příklady

Následující příklad kódu spočítá navázaná připojení TCP.

void CountTcpConnections()
{
   IPGlobalProperties ^ properties = IPGlobalProperties::GetIPGlobalProperties();
   array<TcpConnectionInformation^>^connections = properties->GetActiveTcpConnections();
   int establishedConnections = 0;
   System::Collections::IEnumerator^ myEnum1 = connections->GetEnumerator();
   while ( myEnum1->MoveNext() )
   {
      TcpConnectionInformation ^ t = safe_cast<TcpConnectionInformation ^>(myEnum1->Current);
      if ( t->State == TcpState::Established )
      {
         establishedConnections++;
      }

      Console::Write( "Local endpoint: {0} ", t->LocalEndPoint->Address );
      Console::WriteLine( "Remote endpoint: {0} ", t->RemoteEndPoint->Address );
   }

   Console::WriteLine( "There are {0} established TCP connections.", establishedConnections );
}
public static void CountTcpConnections()
{
    IPGlobalProperties properties = IPGlobalProperties.GetIPGlobalProperties();
    TcpConnectionInformation[] connections = properties.GetActiveTcpConnections();
    int establishedConnections = 0;

    foreach (TcpConnectionInformation t in connections)
    {
        if (t.State == TcpState.Established)
        {
             establishedConnections++;
        }
        Console.Write("Local endpoint: {0} ",t.LocalEndPoint.Address);
        Console.WriteLine("Remote endpoint: {0} ",t.RemoteEndPoint.Address);
    }
     Console.WriteLine("There are {0} established TCP connections.",
        establishedConnections);
}
Public Shared Sub CountTcpConnections() 
    Dim properties As IPGlobalProperties = IPGlobalProperties.GetIPGlobalProperties()
    Dim connections As TcpConnectionInformation() = properties.GetActiveTcpConnections()
    Dim establishedConnections As Integer = 0
    
    Dim t As TcpConnectionInformation
    For Each t In  connections
        If t.State = TcpState.Established Then
            establishedConnections += 1
        End If
        Console.Write("Local endpoint: {0} ", t.LocalEndPoint.Address)
        Console.WriteLine("Remote endpoint: {0} ", t.RemoteEndPoint.Address)
    Next t 
    Console.WriteLine("There are {0} established TCP connections.", establishedConnections)

End Sub

Poznámky

Tento výčet definuje platné hodnoty pro State vlastnost . TCP je protokol přenosové vrstvy zodpovědný za spolehlivé odesílání a příjem datových paketů. Stavy TCP v tomto výčtu jsou definovány v dokumentu IETF RFC 793, který je k dispozici na adrese https://www.ietf.org.

Platí pro