SO_BSP_STATE 소켓 옵션

SO_BSP_STATE 소켓 옵션은 소켓에서 사용하는 로컬 주소, 로컬 포트, 원격 주소, 원격 포트, 소켓 유형 및 프로토콜을 반환합니다.

이 작업을 수행하려면 다음 매개 변수를 사용하여 getsockopt 함수를 호출합니다.

소켓 옵션 값

이 소켓 옵션을 나타내는 상수는 0x1009.

구문

int getsockopt(
  (SOCKET) s,      // descriptor identifying a socket 
  (int) SOL_SOCKET,   // level
  (int) SO_BSP_STATE, // optname
  (char *) optval,         // output buffer,
  (int) *optlen,       // size of output buffer
);

매개 변수

s [in]

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

수준 [in]

옵션이 정의된 수준입니다. 이 작업에 는 SOL_SOCKET 사용합니다.

optname [in]

값을 검색할 소켓 옵션입니다. 이 작업에 는 SO_BSP_STATE 사용합니다.

optval [out]

요청된 옵션의 값을 반환할 버퍼에 대한 포인터입니다. 이 매개 변수는 CSADDR_INFO 구조체의 크기보다 크거나 같은 버퍼를 가리킵니다.

optlen [in, out]

옵트발 버퍼의 크기(바이트)에 대한 포인터입니다. 이 크기는 CSADDR_INFO 구조체의 크기와 같거나 커야 합니다.

반환 값

작업이 성공적으로 완료되면 getsockopt 는 0을 반환합니다.

작업이 실패하면 SOCKET_ERROR 값이 반환되고 WSAGetLastError를 호출하여 특정 오류 코드를 검색할 수 있습니다.

오류 코드 의미
WSANOTINITIALISED
이 함수를 사용하기 전에 성공적인 WSAStartup 호출이 발생해야 합니다.
WSAENETDOWN
네트워크 하위 시스템이 실패했습니다.
WSAEFAULT
optval 또는 optlen 매개 변수 중 하나는 사용자 주소 공간의 유효한 부분에 없는 메모리를 가리킵니다. optlen 매개 변수가 가리키는 값이 CSADDR_INFO 구조체의 크기보다 작은 경우에도 이 오류가 반환됩니다.
WSAEINPROGRESS
차단 Windows 소켓 1.1 호출이 진행 중이거나 서비스 공급자가 여전히 콜백 함수를 처리하고 있습니다.
WSAEINVAL
수준 매개 변수가 알 수 없거나 잘못되었습니다.
WSAENOPROTOOPT
옵션은 표시된 프로토콜 패밀리에서 알 수 없거나 지원되지 않습니다.
WSAENOTSOCK
설명자가 소켓이 아닙니다.

 

설명

SO_BSP_STATE 소켓 옵션을 사용하여 호출된 getsockopt 함수는 소켓에서 사용하는 로컬 주소, 로컬 포트, 원격 주소, 원격 포트, 소켓 유형 및 프로토콜을 검색합니다. SO_BSP_STATE 소켓 옵션은 IPv6 또는 IPv4 소켓(AF_INET6AF_INET 주소 패밀리)에서 작동합니다.

getsockopt 함수가 성공하면 정보는 optval 매개 변수가 가리키는 버퍼의 CSADDR_INFO 구조로 반환됩니다. optlen이 가리키는 정수는 원래 이 버퍼의 크기를 포함해야 합니다. 반환 시 optval 매개 변수에 반환된 값의 길이(바이트)로 설정됩니다.

반환된 CSADDR_INFO 구조체의 iSocketTypeiProtocol 멤버는 s 매개 변수 소켓 설명자에 대해 채워집니다.

소켓이 연결되거나 바인딩된 상태이면 반환된 CSADDR_INFO 구조체의 LocalAddr 멤버가 로컬 주소와 포트를 나타내는 SOCKADDR 구조체로 설정됩니다. 소켓이 연결된 상태이면 반환된 CSADDR_INFO 구조체의 RemoteAddr 멤버가 원격 주소 및 포트를 나타내는 SOCKADDR 구조체로 설정됩니다.

소켓이 연결되거나 바인딩된 상태가 아닌 경우 반환된 CSADDR_INFO 구조체의 LocalAddr 멤버는 lpSockaddr 멤버의 NULL 포인터와 iSockaddrLength 멤버가 0으로 설정된 상태로 반환됩니다. 소켓이 바인딩된 상태가 아닌 경우 반환된 CSADDR_INFO 구조체의 RemoteAddr 멤버는 lpSockaddr 멤버의 NULL 포인터와 iSockaddrLength 멤버가 0으로 설정된 상태로 반환됩니다.

getsockopt 함수가 실패하면 optvaloptlen 매개 변수는 변경되지 않고 optval 매개 변수는 반환된 CSADDR_INFO 구조를 가리키지 않습니다.

Ws2def.h 헤더 파일은 Winsock2.h에 자동으로 포함되며 직접 사용하면 안 됩니다.

요구 사항

요구 사항
지원되는 최소 클라이언트
Windows Vista [데스크톱 앱만 해당]
지원되는 최소 서버
Windows Server 2008 [데스크톱 앱만 해당]
헤더
Ws2def.h(Winsock2.h 포함)

추가 정보

getsockopt

CSADDR_INFO

SOCKADDR