TcpState 열거형
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
TCP(Transmission Control Protocol) 연결의 상태를 나타냅니다.
public enum class TcpState
public enum TcpState
type TcpState =
Public Enum TcpState
- 상속
필드
Closed | 1 | TCP 연결이 닫혀 있습니다. |
CloseWait | 8 | TCP 연결의 로컬 엔드포인트에서 로컬 사용자로부터의 연결 종료 요청을 기다리고 있습니다. |
Closing | 9 | TCP 연결의 로컬 엔드포인트에서 이전에 보낸 연결 종료 요청의 승인을 기다리고 있습니다. |
DeleteTcb | 12 | TCP 연결에 대한 TCB(Transmission Control Buffer)가 삭제됩니다. |
Established | 5 | TCP 핸드셰이크가 완료되었습니다. 연결이 설정되었으므로 데이터를 보낼 수 있습니다. |
FinWait1 | 6 | TCP 연결의 로컬 엔드포인트에서 원격 엔드포인트로부터의 연결 종료 요청 또는 이전에 보낸 연결 종료 요청의 승인을 기다리고 있습니다. |
FinWait2 | 7 | TCP 연결의 로컬 엔드포인트에서 원격 엔드포인트로부터의 연결 종료 요청을 기다리고 있습니다. |
LastAck | 10 | TCP 연결의 로컬 엔드포인트에서 이전에 보낸 연결 종료 요청의 최종 승인을 기다리고 있습니다. |
Listen | 2 | TCP 연결의 로컬 엔드포인트에서 원격 엔드포인트로부터의 연결 요청을 수신하고 있습니다. |
SynReceived | 4 | TCP 연결의 로컬 엔드포인트에서 연결 요청을 보내고 받았으며 승인을 기다리고 있습니다. |
SynSent | 3 | TCP 연결의 로컬 엔드포인트에서 원격 엔드포인트에 동기화(SYN) 제어 비트 집합과 함께 세그먼트 헤더를 보냈으며 일치하는 연결 요청을 기다리고 있습니다. |
TimeWait | 11 | TCP 연결의 로컬 엔드포인트에서 원격 엔드포인트가 연결 종료 요청의 승인을 받았는지 확인하는 데 충분한 시간이 경과하기를 기다리고 있습니다. |
Unknown | 0 | TCP 연결 상태를 알 수 없습니다. |
예제
다음 코드 예제에서는 설정된 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
설명
이 열거형은 속성에 유효한 State 값을 정의합니다. TCP는 데이터 패킷을 안정적으로 보내고 받는 전송 계층 프로토콜입니다. 이 열거형의 TCP 상태는 에서 사용할 수 있는 IETF RFC 793에 https://www.ietf.org정의되어 있습니다.
적용 대상
.NET