TcpState Výčet
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Určuje stavy připojení TCP (Transmission Control Protocol).
public enum class TcpState
public enum TcpState
type TcpState =
Public Enum TcpState
- Dědičnost
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 | Handshake protokolu TCP je dokončený. Připojení bylo navázáno a můžou se 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 řídicím bitem synchronizace (SYN) a čeká na odpovídající žádost o připojení. |
TimeWait | 11 | Místní koncový bod připojení TCP čeká na předání dostatečného času, 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 vlastnosti State . TCP je protokol transportní 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 RFC 793 IETF, který je k dispozici na adrese https://www.ietf.org.