다음을 통해 공유


WSAGetLastError 함수(winsock.h)

WSAGetLastError 함수는 실패한 마지막 Windows 소켓 작업에 대한 오류 상태 반환합니다.

구문

int WSAGetLastError();

반환 값

반환 값은 실패한 이 스레드의 마지막 Windows 소켓 작업에 대한 오류 코드를 나타냅니다.

설명

WSAGetLastError 함수는 호출 스레드에 대해 발생한 마지막 오류를 반환합니다. 특정 Windows Sockets 함수가 오류가 발생했음을 나타내는 경우 이 함수를 즉시 호출하여 실패한 함수 호출에 대한 확장된 오류 코드를 검색해야 합니다. 이 확장 오류 코드는 wSAGetLastError가 모든 스레드별 소켓에 대해 이므로 소켓별인 SO_ERRORoptname 매개 변수를 사용하여 호출될 때 getsockopt에서 가져온 오류 코드와 다를 수 있습니다.

함수 호출의 반환 값이 오류 또는 기타 관련 데이터가 오류 코드에서 반환되었음을 나타내는 경우 WSAGetLastError 를 즉시 호출해야 합니다. 이는 일부 함수가 성공하면 마지막 확장 오류 코드를 0으로 다시 설정하여 이전에 실패한 함수에서 반환한 확장 오류 코드를 덮어쓸 수 있기 때문에 필요합니다. 확장된 오류 코드를 구체적으로 다시 설정하려면 iError 매개 변수가 0으로 설정된 WSASetLastError 함수 호출을 사용합니다. SO_ERRORoptname 매개 변수를 사용하여 호출되는 경우 getsockopt 함수는 확장된 오류 코드를 0으로 다시 설정합니다.

WSAGetLastError 함수는 비동기 메시지를 수신할 때 확장된 오류 값을 검사 데 사용하면 안 됩니다. 이 경우 확장된 오류 값은 메시지의 lParam 매개 변수에 전달되며 WSAGetLastError에서 반환된 값과 다를 수 있습니다.

참고 애플리케이션에서 WSAGetLastError 함수를 호출하여 WSAStartup 함수가 실패하거나 WSAStartup 함수가 Windows 소켓 함수를 호출하기 전에 Windows 소켓을 제대로 초기화하기 위해 호출되지 않은 경우에도 일반적으로 Windows 소켓에서 수행되는 것처럼 다른 Windows 소켓 함수에 대한 확장된 오류 코드를 확인할 수 있습니다. WSAGetLastError 함수는 WSAStartup 실패 시 호출할 수 있는 Winsock 2.2 DLL의 유일한 함수 중 하나입니다.
 

이 함수에서 반환된 Windows 소켓 확장 오류 코드와 오류에 대한 텍스트 설명이 Windows 소켓 오류 코드 아래에 나열됩니다. 이러한 오류 코드 및 오류 코드와 관련된 짧은 텍스트 설명은 Winerror.h 헤더 파일에 정의되어 있습니다. FormatMessage 함수를 사용하여 반환된 오류에 대한 메시지 문자열을 가져올 수 있습니다.

소켓 애플리케이션을 Winsock으로 포팅할 때 오류 코드를 처리하는 방법에 대한 자세한 내용은 오류 코드 - errno, h_errno 및 WSAGetLastError를 참조하세요.

Windows Phone 8: 이 함수는 Windows Phone 8 이상에서 Windows Phone 스토어 앱에서 지원됩니다.

Windows 8.1Windows Server 2012 R2: 이 함수는 Windows 8.1, Windows Server 2012 R2 이상의 Windows 스토어 앱에서 지원됩니다.

요구 사항

   
지원되는 최소 클라이언트 Windows 8.1, Windows Vista [데스크톱 앱 | UWP 앱]
지원되는 최소 서버 Windows Server 2003 [데스크톱 앱 | UWP 앱]
대상 플랫폼 Windows
헤더 winsock.h(Winsock2.h 포함)
라이브러리 Ws2_32.lib
DLL Ws2_32.dll

추가 정보

오류 코드 - errno, h_errno 및 WSAGetLastError

FormatMessage

WSASetLastError

WSAStartup

Windows 소켓 오류 코드

Winsock 함수

Winsock 참조

getsockopt