首页 > 解决方案 > winsock2中的错误代码“5”是什么意思?

问题描述

我正在使用 winsock2 库制作一个简单的客户端-服务器应用程序,但是当我尝试打开套接字时收到“5”错误代码,但文档中的第一个错误代码是“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);
}

标签: c++winsock2

解决方案


WSAGetLastError返回的错误代码是GetLastError返回的错误代码的子集。

由于GetLastError是 由 返回的所有错误的超集WSAGetLastError,因此调用GetLastError将产生与调用相同的错误值WSAGetLastError,以及与 Winsock 无关的任何错误。

5返回码是一个ERROR_ACCESS_DENIED. 为什么您会收到此错误是另一回事。

请参阅以下链接,了解可能导致此问题的原因


推荐阅读