Поделиться через


TcpState Перечисление

Определение

Указывает состояния подключения протокола управления передачей (TCP).

public enum class TcpState
public enum TcpState
type TcpState = 
Public Enum TcpState
Наследование
TcpState

Поля

Имя Значение Описание
Unknown 0

Состояние TCP-подключения неизвестно.

Closed 1

Tcp-подключение закрыто.

Listen 2

Локальная конечная точка TCP-подключения прослушивает запрос подключения из любой удаленной конечной точки.

SynSent 3

Локальная конечная точка TCP-подключения отправила удаленную конечную точку заголовок сегмента с набором битов элемента управления синхронизации (SYN) и ожидает соответствующего запроса на подключение.

SynReceived 4

Локальная конечная точка TCP-подключения отправила и получила запрос на подключение и ожидает подтверждения.

Established 5

Подтверждение TCP завершено. Подключение установлено, и данные можно отправлять.

FinWait1 6

Локальная конечная точка TCP-подключения ожидает запроса на завершение подключения из удаленной конечной точки или подтверждения запроса на завершение подключения, отправленного ранее.

FinWait2 7

Локальная конечная точка TCP-подключения ожидает запроса на завершение подключения из удаленной конечной точки.

CloseWait 8

Локальная конечная точка TCP-подключения ожидает запроса на завершение подключения от локального пользователя.

Closing 9

Локальная конечная точка TCP-подключения ожидает подтверждения запроса завершения подключения, отправленного ранее.

LastAck 10

Локальная конечная точка TCP-подключения ожидает окончательного подтверждения запроса завершения подключения, отправленного ранее.

TimeWait 11

Локальная конечная точка TCP-подключения ожидает достаточно времени, чтобы убедиться, что удаленная конечная точка получила подтверждение запроса на завершение подключения.

DeleteTcb 12

Буфер управления передачей (TCB) для tcp-подключения удаляется.

Примеры

В следующем примере кода учитывается установленные TCP-подключения.

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

Комментарии

Это перечисление определяет допустимые значения для State свойства. TCP — это протокол транспортного уровня, отвечающий за надежную отправку и получение пакетов данных. Состояния TCP в этом перечислении определяются в IETF RFC 793, доступной по адресу https://www.ietf.org.

Применяется к