SocketOptionName 열거형
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
구성 옵션 이름을 정의합니다.
public enum class SocketOptionName
public enum SocketOptionName
type SocketOptionName =
Public Enum SocketOptionName
- 상속
필드
| Name | 값 | Description |
|---|---|---|
| DontLinger | -129 | 소켓을 오래 가지 않고 정상적으로 닫습니다. |
| ExclusiveAddressUse | -5 | 단독 액세스를 위해 소켓을 바인딩할 수 있습니다. |
| Debug | 1 | 디버깅 정보를 기록합니다. |
| IPOptions | 1 | 나가는 데이터그램에 삽입할 IP 옵션을 지정합니다. |
| NoChecksum | 1 | 체크섬이 0으로 설정된 UDP 데이터그램을 보냅니다. |
| NoDelay | 1 | 보내기 통합을 위해 Nagle 알고리즘을 비활성화합니다. |
| AcceptConnection | 2 | 소켓이 수신 대기하고 있습니다. |
| BsdUrgent | 2 | RFC-1222에 정의된 대로 긴급 데이터를 사용합니다. 이 옵션은 한 번만 설정할 수 있습니다. 설정된 후에는 해제할 수 없습니다. |
| Expedited | 2 | RFC-1222에 정의된 대로 신속한 데이터를 사용합니다. 이 옵션은 한 번만 설정할 수 있습니다. 설정된 후에는 해제할 수 없습니다. |
| HeaderIncluded | 2 | 애플리케이션이 나가는 데이터그램에 대한 IP 헤더를 제공한다는 것을 나타냅니다. |
| TypeOfService | 3 | 서비스 필드의 IP 헤더 유형을 변경합니다. |
| IpTimeToLive | 4 | IP 헤더 Time-to-Live 필드를 설정합니다. |
| ReuseAddress | 4 | 소켓이 이미 사용 중인 주소에 바인딩되도록 허용합니다. |
| KeepAlive | 8 | keep-alive를 사용합니다. |
| MulticastInterface | 9 | 나가는 멀티캐스트 패킷에 대한 인터페이스를 설정합니다. |
| MulticastTimeToLive | 10 | IP 멀티캐스트 TL(Time to Live)입니다. |
| MulticastLoopback | 11 | IP 멀티캐스트 루프백입니다. |
| AddMembership | 12 | IP 그룹 멤버 자격을 추가합니다. |
| DropMembership | 13 | IP 그룹 멤버 자격을 삭제합니다. |
| DontFragment | 14 | IP 데이터그램을 조각화하지 마세요. |
| AddSourceMembership | 15 | 원본 그룹에 조인합니다. |
| DontRoute | 16 | 라우팅하지 마세요. 패킷을 인터페이스 주소로 직접 보냅니다. |
| DropSourceMembership | 16 | 원본 그룹을 삭제합니다. |
| BlockSource | 17 | 원본에서 데이터를 차단합니다. |
| UnblockSource | 18 | 이전에 차단된 원본의 차단을 해제합니다. |
| PacketInformation | 19 | 수신된 패킷에 대한 정보를 반환합니다. |
| ChecksumCoverage | 20 | UDP 체크섬 검사를 설정하거나 가져옵니다. |
| HopLimit | 21 | IPv6(인터넷 프로토콜 버전 6) 패킷의 최대 라우터 홉 수를 지정합니다. 이는 인터넷 프로토콜 버전 4용 TTL(Time to Live)과 유사합니다. |
| IPProtectionLevel | 23 | 링크가 동일한 로컬 또는 사이트 로컬 접두사를 가진 주소와 같이 지정된 범위에 대한 IPv6 소켓의 제한을 사용하도록 설정합니다. 이 소켓 옵션을 사용하면 애플리케이션이 IPv6 소켓에 액세스 제한을 적용할 수 있습니다. 이러한 제한을 통해 프라이빗 LAN에서 실행되는 애플리케이션은 외부 공격에 대해 간단하고 강력하게 강화할 수 있습니다. 이 소켓 옵션은 수신 대기 소켓의 범위를 넓히거나 좁히며, 적절한 경우 퍼블릭 및 프라이빗 사용자로부터 무제한 액세스를 사용하도록 설정하거나 필요에 따라 동일한 사이트에만 액세스를 제한합니다. 이 소켓 옵션에는 열거형에 IPProtectionLevel 지정된 보호 수준이 정의되어 있습니다. |
| IPv6Only | 27 | AF_INET6 주소 패밀리에 대해 만든 소켓을 IPv6 통신에만 사용하도록 제한할지 여부를 나타냅니다. AF_INET6 주소 패밀리에 대해 만든 소켓은 IPv6 및 IPv4 통신 모두에 사용할 수 있습니다. 애플리케이션에 따라 AF_INET6 주소 패밀리에 대해 만든 소켓을 IPv6 통신에만 사용하도록 제한할 수 있습니다. 이 값이 0이 아닌 경우(Windows 기본값) AF_INET6 주소 패밀리에 대해 만든 소켓을 사용하여 IPv6 패킷만 보내고 받을 수 있습니다. 이 값이 0이면 AF_INET6 주소 패밀리에 대해 만든 소켓을 IPv6 주소 또는 IPv4 주소에서 패킷을 보내고 받는 데 사용할 수 있습니다. IPv4 주소를 조작할 수 있으려면 IPv4로 매핑된 주소를 사용해야 합니다. 이 소켓 옵션은 Windows Vista 이상에서 지원됩니다. |
| Broadcast | 32 | 소켓에서 브로드캐스트 메시지 보내기를 허용합니다. |
| UseLoopback | 64 | 가능하면 하드웨어를 무시합니다. |
| Linger | 128 | 들여쓰지 않은 데이터가 있는 경우 닫습니다. |
| OutOfBandInline | 256 | 일반 데이터 스트림에서 대역 외 데이터를 받습니다. |
| SendBuffer | 4097 | 송신을 위해 예약된 총 소켓당 버퍼 공간을 지정합니다. 이는 최대 메시지 크기 또는 TCP 창의 크기와 관련이 없습니다. |
| ReceiveBuffer | 4098 | 수신에 예약된 총 소켓당 버퍼 공간을 지정합니다. 이는 최대 메시지 크기 또는 TCP 창의 크기와 관련이 없습니다. |
| SendLowWater | 4099 | 작업의 하위 워터 마크를 Send 지정합니다. |
| ReceiveLowWater | 4100 | 작업의 하위 워터 마크를 Receive 지정합니다. |
| SendTimeout | 4101 | 시간 초과를 보냅니다. 이 옵션은 동기 메서드에만 적용됩니다. 메서드와 같은 BeginSend(Byte[], Int32, Int32, SocketFlags, AsyncCallback, Object) 비동기 메서드에는 영향을 주지 않습니다. |
| ReceiveTimeout | 4102 | 시간 초과를 받습니다. 이 옵션은 동기 메서드에만 적용됩니다. 메서드와 같은 BeginSend(Byte[], Int32, Int32, SocketFlags, AsyncCallback, Object) 비동기 메서드에는 영향을 주지 않습니다. |
| Error | 4103 | 오류 상태를 가져오고 지우기 |
| Type | 4104 | 소켓 유형을 가져옵니다. |
| ReuseUnicastPort | 12295 | 시스템에서 아웃바운드 연결에 대한 임시 포트 할당을 연기해야 임을 나타냅니다. Winsock2 SO_REUSE_UNICASTPORT 소켓 옵션을 사용하는 것과 같습니다. |
| UpdateAcceptContext | 28683 | 기존 소켓의 속성을 사용하여 허용된 소켓의 속성을 업데이트합니다. 이는 Winsock2 SO_UPDATE_ACCEPT_CONTEXT 소켓 옵션을 사용하는 것과 동일하며 연결 지향 소켓에서만 지원됩니다. |
| UpdateConnectContext | 28688 | 기존 소켓의 속성을 사용하여 연결된 소켓의 속성을 업데이트합니다. 이는 Winsock2 SO_UPDATE_CONNECT_CONTEXT 소켓 옵션을 사용하는 것과 동일하며 연결 지향 소켓에서만 지원됩니다. |
| MaxConnections | 2147483647 | 지원되지 않습니다. 는 사용되는 경우를 SocketException throw합니다. |
예제
다음 코드 예제에서는 이 열거형을 사용하여 소켓 옵션을 설정합니다.
// The socket will linger for 10 seconds after Socket.Close is called.
var lingerOption = new LingerOption(true, 10);
s.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.Linger, lingerOption);
' The socket will linger for 10 seconds after Socket.Close is called.
Dim lingerOption As New LingerOption(True, 10)
s.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.Linger, lingerOption)
설명
열거형은 SocketOptionName 각 Socket 구성 옵션의 이름을 정의합니다. 소켓은 메서드를 사용하여 Socket.SetSocketOption 구성할 수 있습니다.