관리 메뉴

드럼치는 프로그래머

[TCP/IP] WSAGetLastError() 본문

★─Programing/☆─TCP IP

[TCP/IP] WSAGetLastError()

드럼치는한동이 2008. 3. 17. 11:50

WSAGetLastError

WSAGetLastError 함수는 가장 최근에 일어난 실패한 소켓연산의 에러코드를 얻어내는 함수입니다.

int WSAGetLastError (void);

 

Remarks

WSAGetLastError 함수는 마지막으로 발생한 네트웍 에러를 반환합니다. 특정한 윈도우 소켓이 에러가 발생되면, 이 함수는 그에 적절한 에러코드를 반환하게되죠. 이 에러코드는 getsockopt 함수를 SO_ERROR 옵션으로 호출해서 얻은 에러코드와는 다를 수 있으니 염두해 두도록 하시구요. WSAGetLastError 는 다중쓰레드 어플리케이션이 경우 모든 쓰레드의 소켓에 대해서 동작을 하게 된다는 점두 염두해 두도록 합시다.

성공적인 소켓 함수의 호출이라든지, WSAGetLastError의 호출은 에러코드를 리셋하지 않습니다. 에러코드를 리셋하고 나중에 다시 사용하기 위해서는 WSAGetLastError 함수를 iError 매개변수를 0으로하여 호출해야 합니다. SO_ERROR 옵션으로 호출된 getsockopt 함수또한 0으로 호출해서 에러코드를 리셋해야만, 다음에 정확한 에러코드를 얻을 수 있다는점! 중요한 부분이니까. 꼭! 꼭! 꼭! 염두해 두도록 합시다.

그리고 비동기 네트웍 통지 메시지를 받을 때 메시지의 lParam으로 오는 에러값은 WSAGetLastError함수로 얻어낸 에러값과 다를 수 있으므로 이 두 에러값을 비교해서 서로 체크하는 것은 무의미 하다는 것을 또한 염두해 두도록 합시다.

 

Return Values

함수의 반환값은 마지막 윈도즈 소켓 연산의 에러코드를 의미합니다.

 

QuickInfo

Windows NT : 사용가능
Windows : 사용가능
Windows CE :
버젼 1.0 그리고 그이후의 버젼에서 사용가능
Header :
          Win16/32 : winsock.h
          Win32-II : winsock2.h
Import Library :
          Win16 : winsock.lib
          Win32 : wsock32.lib
          Win32-II : ws2_32.lib

See Also

overview, getsockopt, WSASetLastError

'★─Programing > ☆─TCP IP' 카테고리의 다른 글

[TCP/IP] IPv4의 주소체계  (0) 2008.04.17
[TCP/IP] 리눅스 C - sleep 함수  (0) 2008.03.25
[TCP/IP] TCP/IP 프로트콜 구조  (0) 2008.03.19
[TCP/IP] sockaddr_in 구조체  (0) 2008.03.18
[TCP/IP] TCP & UDP  (0) 2008.03.18
Comments