我需要实现一个客户端服务器程序,我有一个非常奇怪的问题。 在程序中,我连接到服务器并向其发送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;
}