안녕하세요?
델파이를 실행해서 서버에 연결시 서버가 다운되거나 연결되지 않는경우엔
soket error #10061 connection refused라는 에러가 보이는데요
이에러를 가로채서 프로그램상에서 이런에러이면 한글로 메시지박스로
보이도록 해주고 싶은데요
어떻게 해야 저런 에러메세지들을 가져올수 있고
또 가져온후엔 어떻게 10061이란 번호를 가져올수 있는지
알려주시면 감사하겠습니다.
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
아래는 설명입니다.
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