TcpState Enumeração
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Especifica os estados da conexão do protocolo TCP.
public enum class TcpState
public enum TcpState
type TcpState =
Public Enum TcpState
- Herança
Campos
Closed | 1 | A conexão TCP está fechada. |
CloseWait | 8 | O ponto de extremidade local da conexão TCP está esperando uma solicitação de encerramento da conexão do usuário local. |
Closing | 9 | O ponto de extremidade local da conexão TCP está esperando uma confirmação da solicitação de encerramento da conexão enviada anteriormente. |
DeleteTcb | 12 | O TCB (buffer de controle de transmissão) para a conexão TCP está sendo excluído. |
Established | 5 | O handshake TCP é concluído. A conexão foi estabelecida e os dados podem ser enviados. |
FinWait1 | 6 | O ponto de extremidade local da conexão TCP está esperando uma solicitação de encerramento da conexão do ponto de extremidade remoto ou uma confirmação de solicitação de encerramento da conexão enviada anteriormente. |
FinWait2 | 7 | O ponto de extremidade local da conexão TCP está esperando uma solicitação de encerramento da conexão do ponto de extremidade remoto. |
LastAck | 10 | O ponto de extremidade local da conexão TCP está esperando a confirmação final da solicitação de encerramento da conexão enviada anteriormente. |
Listen | 2 | O ponto de extremidade local da conexão TCP está ouvindo uma solicitação de conexão de qualquer ponto de extremidade remoto. |
SynReceived | 4 | O ponto de extremidade local da conexão TCP enviou e recebeu uma solicitação de conexão e está esperando uma confirmação. |
SynSent | 3 | O ponto de extremidade local da conexão TCP enviou ao ponto de extremidade remoto um cabeçalho de segmento com o conjunto de bits de controle de sincronização (SYN) e está aguardando uma solicitação de conexão correspondente. |
TimeWait | 11 | O ponto de extremidade local da conexão TCP está esperando tempo suficiente para garantir que o ponto de extremidade remoto recebeu a confirmação de sua solicitação de encerramento da conexão. |
Unknown | 0 | O estado da conexão TCP é desconhecido. |
Exemplos
O exemplo de código a seguir conta as conexões TCP estabelecidas.
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
Comentários
Essa enumeração define valores válidos para a State propriedade . O TCP é um protocolo de camada de transporte responsável por enviar e receber pacotes de dados de forma confiável. Os estados TCP nessa enumeração são definidos no IETF RFC 793 disponível em https://www.ietf.org.