首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >winsock gethostbyname失败

winsock gethostbyname失败
EN

Stack Overflow用户
提问于 2010-03-07 17:18:35
回答 2查看 1.2K关注 0票数 0

Visual Studio C++ 2008

我正在使用这个代码。但是,gethostbyname总是返回错误。在我看来一切都很好,所以我不明白为什么我会得到这个错误。

这是我用来获取gethostbyname的代码。

你觉得我可能做错了什么吗?

代码语言:javascript
复制
int32_t sockfd;
/* struct definition */
struct sockaddr_in conn_addr;

/* gethostbyname for the function and struct definition */
struct hostent *server_hostname;

/* set address to connect to the local loopback */
char buffer[BUF_SIZE] = "127.0.0.1";
char data[BUF_SIZE] = {0};

/* getting hostname for the ip address stored in the buffer */
if((server_hostname = gethostbyname(buffer)) == NULL)
{
        /* gethostbyname uses a special h_errno for error number */
        fprintf(stderr, "gethostbyname [ %s ] [ %s ] [ %d ]\n", strerror(h_errno), __FUNCTION__, __LINE__);
        return CS_FAILURE;
}

返回的错误是“未知错误”,这不会有太大帮助。

非常感谢您的建议,

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-03-07 17:24:40

需要添加WSAStartup;

代码语言:javascript
复制
WSADATA wsaData;
struct hostent *remoteHost;
char *host_name = "127.0.0.1";

WSAStartup(MAKEWORD(2, 2), &wsaData);

remoteHost = gethostbyname(host_name);
票数 3
EN

Stack Overflow用户

发布于 2010-03-07 17:24:11

你应该能够使用WSAGetLastError得到“真正的”错误。

顺便说一句,我假设你在调用gethostbyname之前已经调用了WSAStartup来初始化套接字子系统?

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2395732

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档