cpp socket编程中如何处理connect errno

How to handle connect errno in cpp socket programming

我是网络编程的新手,目前正在关注 Beej's Guide 以熟悉此内容。

书上在介绍getaddrinfo()函数的时候,告诉我用gai_strerror()解释返回可读字符串的错误码。但是,这本书没有涵盖 connect() 的错误处理方法,我想知道是否有类似的函数可以完成与 gai_strerror()getaddrinfo() 所做的相同的工作?

这是我的代码:

    if((status=connect(sockfd, res->ai_addr, res->ai_addrlen)) != 0){
        fprintf(stderr, "connect: %s\n", function_to_be_used(status));

        return 2;
    }

来自connect函数参考:

If the connection or binding succeeds, zero is returned. On error, -1 is returned, and errno is set to indicate the error.

因此,您需要以下代码:

fprintf(stderr, "connect: %s\n", strerror(errno));

getaddrinfo 错误处理是一种异常,大多数 API 设置 errno 错误,可以使用 strerror.[=16= 将其转换为错误消息]