首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何获取最后一个错误(WSAGetLastError)?

要获取最后一个错误(WSAGetLastError),您可以使用Windows Sockets API中的WSAGetLastError()函数。这个函数返回一个错误代码,表示在调用Windows Sockets API函数时发生的最后一个错误。您可以使用这个错误代码来确定错误原因,并采取相应的措施。

以下是一个简单的示例,展示了如何使用WSAGetLastError()函数:

代码语言:c
复制
#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错误代码。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

领券