다음을 통해 공유


LPWSPGETSOCKOPT 콜백 함수(ws2spi.h)

LPWSPGetSockOpt 함수는 소켓 옵션을 검색합니다.

구문

LPWSPGETSOCKOPT Lpwspgetsockopt;

int Lpwspgetsockopt(
  SOCKET s,
  int level,
  int optname,
  char *optval,
  LPINT optlen,
  LPINT lpErrno
)
{...}

매개 변수

s

소켓을 식별하는 설명자입니다.

level

옵션이 정의된 수준입니다. 지원되는 수준에는 SOL_SOCKET 포함 됩니다. (더 많은 프로토콜별 수준은 부록을 참조하세요.)

optname

값을 검색할 소켓 옵션입니다.

optval

요청된 옵션의 값을 반환할 버퍼에 대한 포인터입니다.

optlen

옵트발 버퍼의 크기(바이트)에 대한 포인터입니다.

lpErrno

오류 코드에 대한 포인터입니다.

반환 값

오류가 발생하지 않으면 LPWSPGetSockOpt 은 0을 반환합니다. 그렇지 않으면 SOCKET_ERROR 값이 반환되고 lpErrno에서 특정 오류 코드를 사용할 수 있습니다.

오류 코드 의미
WSAENETDOWN
네트워크 하위 시스템이 실패했습니다.
WSAEFAULT
optval 또는 optlen 매개 변수 중 하나가 사용자 주소 공간의 유효한 부분이 아니거나 optlen 매개 변수가 너무 작습니다.
WSAEINVAL
수준을 알 수 없거나 잘못되었습니다.
WSAEINPROGRESS
콜백이 진행 중일 때 함수가 호출됩니다.
WSAENOPROTOOPT
옵션은 표시된 프로토콜 패밀리에서 알 수 없거나 지원되지 않습니다.
WSAENOTSOCK
설명자가 소켓이 아닙니다.

설명

LPWSPGetSockOpt 함수는 모든 형식의 소켓과 연결된 소켓 옵션의 현재 값을 모든 상태로 검색하고 결과를 optval에 저장합니다. 옵션은 여러 프로토콜 수준에서 존재할 수 있지만 항상 가장 높은 소켓 수준에 있습니다. 옵션은 패킷 라우팅 및 OOB 데이터 전송과 같은 소켓 작업에 영향을 줍니다.

선택한 옵션과 연결된 값이 버퍼 옵트발에 반환됩니다. optlen이 가리키는 정수는 원래 이 버퍼의 크기를 포함해야 합니다. 반환 시 반환되는 값의 크기로 설정됩니다. SO_LINGER 구조체의 크기입니다. 대부분의 다른 옵션의 경우 정수의 크기가 됩니다.

Windows 소켓 SPI 클라이언트는 지정한 매개 변수에 의해 직접 또는 간접적으로 가리키는 메모리 공간을 할당합니다.

옵션이 LPWSPSetSockOpt으로 설정되지 않은 경우 LPWSPGetSockOpt은 옵션의 기본값을 반환합니다.

소켓 옵션에 대한 자세한 내용은 소켓 옵션을 참조하세요.

level = SOL_SOCKET

Type 의미 기본값
SO_ACCEPTCONN BOOL 소켓이 LPWSPListen을 통해 수신 대기합니다. LPWSPListen이 수행되지 않는 한 FALSE입니다.
SO_BROADCAST BOOL 소켓은 브로드캐스트 메시지의 전송 및 수신을 위해 구성됩니다. FALSE
SO_DEBUG BOOL 디버깅을 사용할 수 있습니다. FALSE
SO_DONTLINGER BOOL true이면 SO_LINGER 옵션을 사용할 수 없습니다. TRUE
SO_DONTROUTE BOOL 라우팅을 사용할 수 없습니다. 이 소켓 옵션을 설정하면 성공하지만 AF_INET 소켓에서는 무시됩니다. 는 WSAENOPROTOOPT 를 사용하는 AF_INET6 소켓에서 실패합니다. 이 옵션은 ATM 소켓에서 지원되지 않습니다(오류 발생). FALSE
SO_ERROR integer 오류 상태 검색하고 지웁니다. 0
SO_GROUP_ID GROUP 예약되어 있습니다. Null
SO_GROUP_PRIORITY integer 예약되어 있습니다. 0
SO_KEEPALIVE BOOL Keepalives가 전송되고 있습니다. ATM 소켓에서 지원되지 않습니다(오류가 발생). FALSE
SO_LINGER LINGER 구조체 현재 느린 옵션을 반환합니다. 1이 켜져 있음(기본값), 0이 꺼져 있음
SO_MAX_MSG_SIZE 부호 없는 정수 메시지 지향 소켓 유형(예: SOCK_DGRAM)에 대한 메시지의 최대 크기입니다. 스트림 지향 소켓에는 의미가 없습니다. 구현 종속
SO_OOBINLINE BOOL OOB 데이터는 일반 데이터 스트림에서 수신됩니다. FALSE
SO_PROTOCOL_INFO WSAPROTOCOL_INFO 구조체 이 소켓에 바인딩된 프로토콜에 대한 프로토콜 정보에 대한 설명입니다. 프로토콜 종속
SO_RCVBUF integer 수신을 위해 예약된 총 소켓당 버퍼 공간입니다. 이는 SO_MAX_MSG_SIZE 관련이 없으며 TCP 수신 창의 크기와 반드시 일치하지는 않습니다. 구현 종속
SO_REUSEADDR BOOL 소켓은 이미 사용 중인 주소에 바인딩할 수 있습니다. 이 옵션은 ATM 소켓에는 적용되지 않습니다. FALSE.
SO_SNDBUF integer 송신을 위해 예약된 총 소켓당 버퍼 공간입니다. 이는 SO_MAX_MSG_SIZE 관련이 없으며 TCP 송신 창의 크기와 반드시 일치하지는 않습니다. 구현 종속
SO_TYPE integer 소켓 유형(예: SOCK_STREAM)입니다. LPWSPSocket">LPWSPSocket을 사용하여 만든 대로
PVD_CONFIG 서비스 공급자 종속 소켓과 연결된 서비스 공급자의 불투명 데이터 구조 개체 입니다. 이 개체는 서비스 공급자의 현재 구성 정보를 저장합니다. 이 데이터 구조의 정확한 형식은 서비스 공급자별 형식입니다. 구현 종속

 

지원되지 않는 옵션을 사용하여 LPWSPGetSockOpt 를 호출하면 WSAENOPROTOOPT 의 오류 코드가 lpErrno에서 반환됩니다.

SO_DEBUG

Windows Sockets SPI 클라이언트에서 SO_DEBUG 옵션을 설정한 경우 Windows 소켓 서비스 공급자는 출력 디버그 정보를 제공하는 것이 좋습니다(필수는 아님). 디버그 정보를 생성하기 위한 메커니즘과 디버그 정보를 생성하는 양식은 이 사양의 scope.

SO_ERROR

SO_ERROR 옵션은 소켓별 오류 코드를 반환하고 다시 설정합니다(WS2_32.DLL 유지 관리하는 스레드별 오류 코드와 반드시 동일하지는 않음). 소켓에서 성공적인 Windows 소켓 호출은 SO_ERROR 옵션에서 반환된 소켓 기반 오류 코드를 다시 설정하지 않습니다.

SO_GROUP_ID

예약되어 있습니다. 이 값은 NULL이어야 합니다.

SO_GROUP_PRIORITY

예약되어 있습니다.

SO_KEEPALIVE

Windows 소켓 SPI 클라이언트는 TCP/IP 서비스 공급자가 SO_KEEPALIVE 소켓 옵션을 켜서 TCP 연결에서 활성 유지 패킷을 사용하도록 요청할 수 있습니다. Windows 소켓 공급자는 keep-alives 사용을 지원할 필요가 없습니다. 이 경우 정확한 의미 체계는 구현에 따라야 하지만 RFC 1122: 인터넷 호스트 요구 사항- 통신 계층의 섹션 4.2.3.6을 준수해야 합니다. (이 리소스는 영어로만 사용할 수 있습니다.) 연결이 keep-alive의 결과로 삭제되면 오류 코드 WSAENETRESET 이 소켓에서 진행 중인 모든 호출에 반환되고 WSAENOTCONN 으로 후속 호출이 실패합니다.

SO_LINGER

SO_LINGER 소켓에서 데이터가 큐에 대기되고 LPWSPCloseSocket 이 수행될 때 수행되는 작업을 제어합니다. SO_LINGER 설정이 LPWSPCloseSocket 의 의미 체계에 미치는 영향에 대한 설명은 LPWSPCloseSocket을 참조하세요. Windows Sockets SPI 클라이언트는 다음 요소를 사용하여 LINGER 구조체( optval 매개 변수가 가리키는)를 만들어 원하는 동작을 가져옵니다.

}

SO_MAX_MSG_SIZE

이는 서비스 공급자가 구현한 메시지 지향 소켓 유형(예: SOCK_DGRAM)에 대한 아웃바운드 송신 메시지의 최대 크기를 나타내는 get-only 소켓 옵션입니다. 바이트 스트림 지향 소켓에는 의미가 없습니다. 최대 인바운드 메시지 크기를 결정하는 프로비저닝은 없습니다.

SO_PROTOCOL_INFOW

이 옵션은 이 소켓과 연결된 WSAPROTOCOL_INFO 구조를 제공하는 get-only 옵션입니다. 이 구조체에 대한 자세한 내용은 WSCEnumProtocols 를 참조하세요.

SO_SNDBUF

Windows Sockets 서비스 공급자가 SO_RCVBUF 및 SO_SNDBUF 옵션을 지원하는 경우 Windows Sockets SPI 클라이언트는 LPWSPSetSockOpt 를 사용하여 다른 버퍼 크기(더 크거나 작음)를 요청할 수 있습니다. 서비스 공급자가 요청된 전체 금액을 사용할 수 없더라도 호출이 성공할 수 있습니다. Windows 소켓 SPI 클라이언트는 실제로 제공된 버퍼 크기를 검사 동일한 옵션으로 이 함수를 호출해야 합니다.

SO_REUSEADDR

기본적으로 소켓은 이미 사용 중인 로컬 주소에 바인딩할 수 없습니다( LPWSPBind 참조). 그러나 경우에 따라 이러한 방식으로 주소를 다시 사용하는 것이 바람직할 수 있습니다. 모든 연결은 로컬 주소와 원격 주소의 조합으로 고유하게 식별되므로 원격 주소가 다르면 동일한 로컬 주소에 두 개의 소켓이 바인딩되는 데 문제가 없습니다. 소켓의 LPWSPBind 를 다른 소켓에서 이미 사용 중인 로컬 주소에 바인딩할 수 있도록 Windows 소켓 공급자에게 알리려면 Windows Sockets SPI 클라이언트는 LPWSPBind를 실행하기 전에 소켓에 대한 SO_REUSEADDR 소켓 옵션을 설정해야 합니다. 옵션은 LPWSPBind 당시에만 해석됩니다. 따라서 기존 주소에 바인딩되지 않는 소켓에서 옵션을 설정하고 LPWSPBind 가 이 소켓 또는 다른 소켓에 영향을 주지 않은 후 옵션을 설정하거나 다시 설정하는 것은 불필요하지만 무해합니다.

PVD_CONFIG

이 옵션은 소켓과 연결된 서비스 공급자에서 불투명 데이터 구조 개체를 검색 합니다. 이 개체는 서비스 공급자의 현재 구성 정보를 저장합니다. 이 데이터 구조의 정확한 형식은 서비스 공급자에 따라 다릅니다.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows 2000 Professional[데스크톱 앱만]
지원되는 최소 서버 Windows 2000 Server[데스크톱 앱만]
머리글 ws2spi.h

추가 정보

LPWSPSetSockOpt

LPWSPSocket