TcpState Wyliczenie
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Określa stany połączenia tcp (Transmission Control Protocol).
public enum class TcpState
public enum TcpState
type TcpState =
Public Enum TcpState
- Dziedziczenie
Pola
Closed | 1 | Połączenie TCP jest zamknięte. |
CloseWait | 8 | Lokalny punkt końcowy połączenia TCP oczekuje na żądanie zakończenia połączenia od użytkownika lokalnego. |
Closing | 9 | Lokalny punkt końcowy połączenia TCP oczekuje na potwierdzenie wysłanego wcześniej żądania zakończenia połączenia. |
DeleteTcb | 12 | Bufor sterowania transmisji (TCB) dla połączenia TCP jest usuwany. |
Established | 5 | Uzgadnianie TCP zostało ukończone. Połączenie zostało nawiązane i można wysyłać dane. |
FinWait1 | 6 | Lokalny punkt końcowy połączenia TCP oczekuje na żądanie zakończenia połączenia zdalnego punktu końcowego lub potwierdzenie wysłanego wcześniej żądania zakończenia połączenia. |
FinWait2 | 7 | Lokalny punkt końcowy połączenia TCP oczekuje na żądanie zakończenia połączenia z zdalnego punktu końcowego. |
LastAck | 10 | Lokalny punkt końcowy połączenia TCP oczekuje na ostateczne potwierdzenie wysłanego wcześniej żądania zakończenia połączenia. |
Listen | 2 | Lokalny punkt końcowy połączenia TCP nasłuchuje żądania połączenia z dowolnego zdalnego punktu końcowego. |
SynReceived | 4 | Lokalny punkt końcowy połączenia TCP wysłał i odebrał żądanie połączenia i oczekuje na potwierdzenie. |
SynSent | 3 | Lokalny punkt końcowy połączenia TCP wysłał do zdalnego punktu końcowego nagłówek segmentu z ustawionym bitem sterowania synchronizacji (SYN) i oczekuje na zgodne żądanie połączenia. |
TimeWait | 11 | Lokalny punkt końcowy połączenia TCP czeka na wystarczająco dużo czasu, aby upewnić się, że zdalny punkt końcowy odebrał potwierdzenie żądania zakończenia połączenia. |
Unknown | 0 | Stan połączenia TCP jest nieznany. |
Przykłady
Poniższy przykład kodu zlicza ustanowione połączenia 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
Uwagi
To wyliczenie definiuje prawidłowe wartości właściwości State . TCP to protokół warstwy transportu odpowiedzialny za niezawodne wysyłanie i odbieranie pakietów danych. Stany TCP w tym wyliczenie są zdefiniowane w dokumencie IETF RFC 793 dostępnym pod adresem https://www.ietf.org.