c++ - 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);
}
解决方案
WSAGetLastError返回的错误代码是GetLastError返回的错误代码的子集。
由于GetLastError
是 由 返回的所有错误的超集WSAGetLastError
,因此调用GetLastError
将产生与调用相同的错误值WSAGetLastError
,以及与 Winsock 无关的任何错误。
5
返回码是一个ERROR_ACCESS_DENIED
. 为什么您会收到此错误是另一回事。
推荐阅读
- javafx - 在 Raspberry 上通过 JavaFX 应用程序进行终端打印
- cpu-architecture - 此操作对链操作是否正确?
- javascript - 使用 CSS / Jquery 为隐藏元素创建平滑过渡
- mongodb - Compass 导出一个文档并尝试导入单个文档
- android - EditText - 没有建议的大写单词?
- postgresql - 使用多个值 Postgres 更新列
- python - 如何在熊猫python中替换特定单词后跟字母数字/数字?
- java - 对混合列表中仅一类的对象进行排序
- regex - 使用正则表达式进行复杂的查找和替换
- java - CordApp Java 堆空间错误和 javax.net.ssl.SSLException