要获取最后一个错误(WSAGetLastError),您可以使用Windows Sockets API中的WSAGetLastError()
函数。这个函数返回一个错误代码,表示在调用Windows Sockets API函数时发生的最后一个错误。您可以使用这个错误代码来确定错误原因,并采取相应的措施。
以下是一个简单的示例,展示了如何使用WSAGetLastError()
函数:
#include <winsock2.h>
#include <ws2tcpip.h>
#include<stdio.h>
int main() {
// 初始化Windows Sockets
WSADATA wsaData;
int result = WSAStartup(MAKEWORD(2, 2), &wsaData);
if (result != 0) {
printf("WSAStartup failed with error: %d\n", result);
return 1;
}
// 创建套接字
SOCKET sock = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
if (sock == INVALID_SOCKET) {
printf("socket creation failed with error: %d\n", WSAGetLastError());
WSACleanup();
return 1;
}
// 连接到远程服务器
sockaddr_in serverAddr;
serverAddr.sin_family = AF_INET;
serverAddr.sin_addr.s_addr = inet_addr("127.0.0.1");
serverAddr.sin_port = htons(8080);
result = connect(sock, (sockaddr*)&serverAddr, sizeof(serverAddr));
if (result == SOCKET_ERROR) {
printf("connect failed with error: %d\n", WSAGetLastError());
closesocket(sock);
WSACleanup();
return 1;
}
// 关闭套接字
closesocket(sock);
// 清理Windows Sockets
WSACleanup();
return 0;
}
在这个示例中,我们首先初始化Windows Sockets,然后创建一个套接字并尝试连接到远程服务器。如果任何一个步骤失败,我们都会使用WSAGetLastError()
函数获取最后一个错误,并输出错误代码。
请注意,WSAGetLastError()
函数只能在调用Windows Sockets API函数时使用。如果您的应用程序中没有调用Windows Sockets API函数,WSAGetLastError()
将返回WSANOTINITIALISED
错误代码。
领取专属 10元无门槛券
手把手带您无忧上云