gethostbyname()失败 - 主机名查找失败

时间:2016-12-13 12:42:06

标签: c sockets gethostbyname

我需要实现一个客户端服务器程序,我有一个非常奇怪的问题。 在程序中,我连接到服务器并向其发送http请求。 在编译后的第一次尝试中,我得到:" gethostbyname():主机名查找失败"。但是如果我再试一次,即使我没有重新编译我的程序,问题也就消失了。 我检查了网址,很好。我认为连接器功能可能存在问题。

int connector(Input* in)
{

    int fd = socket(PF_INET,SOCK_STREAM,0);
    if(fd<0)
    {
        destruct(in);
        perror("socket-connect");
        exit(ERROR);
    }


    struct hostent *hp = gethostbyname(in->host);
    if(hp == NULL)
    {
        destruct(in);
        herror("gethosbyname func");
        exit(ERROR);
    }

    struct sockaddr_in srv_addr;
    srv_addr.sin_family = AF_INET;
    srv_addr.sin_port = htons(in->port);
    srv_addr.sin_addr.s_addr = ((struct in_addr *)hp->h_addr)->s_addr;


    if(connect(fd,(struct sockaddr*)&srv_addr,sizeof(srv_addr))<0)
    {
        destruct(in);
        perror("connect func - connect");
        exit(ERROR);
    }

    return fd;
}

0 个答案:

没有答案