The following is a list of possible error codes returned by the WSAGetLastError() call, along with their explanations. The error numbers are consistently set across all Windows Sockets-compliant implementations.
Windows Sockets code | Berkeley equivalent | Error | Interpretation |
WSAEINTR | EINTR | 10004 | As in standard C |
WSAEBADF | EBADF | 10009 | As in standard C |
WSEACCES | EACCES | 10013 | As in standard C |
WSAEFAULT | EFAULT | 10014 | As in standard C |
WSAEINVAL | EINVAL | 10022 | As in standard C |
WSAEMFILE | EMFILE | 10024 | As in standard C |
WSAEWOULDBLOCK | EWOULDBLOCK | 10035 | As in BSD |
WSAEINPROGRESS | EINPROGRESS | 10036 | This error is returned if anyWindows Sockets API function is called while a blocking function is in progress. |
WSAEALREADY | EALREADY | 10037 | As in BSD |
WSAENOTSOCK | ENOTSOCK | 10038 | As in BSD |
WSAEDESTADDRREQ | EDESTADDRREQ | 10039 | As in BSD |
WSAEMSGSIZE | EMSGSIZE | 10040 | As in BSD |
WSAEPROTOTYPE | EPROTOTYPE | 10041 | As in BSD |
WSAENOPROTOOPT | ENOPROTOOPT | 10042 | As in BSD |
WSAEPROTONOSUPPORT | EPROTONOSUPPORT | 10043 | As in BSD |
WSAESOCKTNOSUPPORT | ESOCKTNOSUPPORT | 10044 | As in BSD |
WSAEOPNOTSUPP | EOPNOTSUPP | 10045 | As in BSD |
WSAEPFNOSUPPORT | EPFNOSUPPORT | 10046 | As in BSD |
WSAEAFNOSUPPORT | EAFNOSUPPORT | 10047 | As in BSD |
WSAEADDRINUSE | EADDRINUSE | 10048 | As in BSD |
WSAEADDRNOTAVAIL | EADDRNOTAVAIL | 10049 | As in BSD |
WSAENETDOWN | ENETDOWN | 10050 | As in BSD. This error may be reported at any time if the Windows Sockets implementation detects an underlying failure. |
WSAENETUNREACH | ENETUNREACH | 10051 | As in BSD |
WSAENETRESET | ENETRESET | 10052 | As in BSD |
WSAECONNABORTED | ECONNABORTED | 10053 | As in BSD |
WSAECONNRESET | ECONNRESET | 10054 | As in BSD |
WSAENOBUFS | ENOBUFS | 10055 | As in BSD |
WSAEISCONN | EISCONN | 10056 | As in BSD |
WSAENOTCONN | ENOTCONN | 10057 | As in BSD |
WSAESHUTDOWN | ESHUTDOWN | 10058 | As in BSD |
WSAETOOMANYREFS | ETOOMANYREFS | 10059 | As in BSD |
WSAETIMEDOUT | ETIMEDOUT | 10060 | As in BSD |
WSAECONNREFUSED | ECONNREFUSED | 10061 | As in BSD |
WSAELOOP | ELOOP | 10062 | As in BSD |
WSAENAMETOOLONG | ENAMETOOLONG | 10063 | As in BSD |
WSAEHOSTDOWN | EHOSTDOWN | 10064 | As in BSD |
WSAEHOSTUNREACH | EHOSTUNREACH | 10065 | As in BSD |
WSASYSNOTREADY | 10091 | Returned by WSAStartup() indicating that the network subsystem is unusable. | |
WSAVERNOTSUPPORTED | 10092 | Returned by WSAStartup() indicating that the Windows Sockets DLL cannot support this app. | |
WSANOTINITIALISED | 10093 | Returned by any function except WSAStartup() indicating that a successful WSAStartup() has not yet been performed. | |
WSAHOST_NOT_FOUND | HOST_NOT_FOUND | 11001 | As in BSD. |
WSATRY_AGAIN | TRY_AGAIN | 11002 | As in BSD |
WSANO_RECOVERY | NO_RECOVERY | 11003 | As in BSD |
WSANO_DATA | NO_DATA | 11004 | As in BSD |
The error numbers are derived from the winsock.h header file, and are based on the fact that Windows Sockets error numbers are computed by adding 10000 to the "normal" Berkeley error number.
Note that this table does not include all of the error codes defined in winsock.h. This is because it includes only errors which might reasonably be returned by a Windows Sockets implementation: winsock.h, on the other hand, includes a full set of BSD definitions to ensure compatibility with ported software.