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= 将其转换为错误消息]
我是网络编程的新手,目前正在关注 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= 将其转换为错误消息]