错误代码“5”在 winsock2 中意味着什么?

what does error code "5" mean in winsock2?

我正在使用 winsock2 库制作一个简单的客户端-服务器应用程序,但是当我尝试打开套接字时收到“5”错误代码,但 the documentation 中的第一个错误代码是“6” ”。问题是,我不明白是什么导致程序退出。

int sockfd;
if ( (sockfd = socket(AF_INET, SOCK_DGRAM, 0)) < 0 ) {
    perror("socket creation failed");
    #ifdef OS_WINDOWS
    std::cerr << WSAGetLastError() << std::endl;
    #endif
    exit(EXIT_FAILURE);
}

错误代码 return 来自 WSAGetLastError are a subset of the error codes returned by GetLastError

由于 GetLastError 是由 WSAGetLastError 编辑的所有错误 return 的超集,调用 GetLastError 将产生与调用 WSAGetLastError 相同的错误值,加上任何与 Winsock 无关的错误。

一个5 return代码是一个ERROR_ACCESS_DENIED。为什么会出现此错误是另一回事。

the following link explaining what may cause this issue