Всем привет!Изучаю сокеты в С++, использую MS VS 2008.
Начал делать, как в умных книжках написано, и столкнулся с такой проблемой:
gethostbyname() всегда возвращает ноль.
Вот код:
#include "stdafx.h" // здесь подключены необходимые библиотеки
using namespace std;
#define MY_ADDR "localhost"
#define PORTNUM 80
int _tmain(int argc, _TCHAR* argv[])
{
setlocale(LC_ALL, "rus"); //включаем русский текст в консоле
SOCKET s;
sockaddr_in serv_addr;
hostent *hp=NULL;
s = socket(AF_INET,SOCK_STREAM,0);
if(!s)
{
perror("Ошибка вызова socket() "); exit(0);
}
hp = gethostbyname(MY_ADDR);
if(!hp)
{
perror("Ошибка вызова gethostbyname() "); exit(0);
}
serv_addr.sin_family = hp->h_addrtype;
serv_addr.sin_port = htons(PORTNUM);
cout << serv_addr.sin_family << endl
<< serv_addr.sin_port << endl;
connect(s,(sockaddr*)&serv_addr,sizeof(serv_addr));
closesocket(s);
return 0;
}
Компилируется, запускается. В MY_ADDR пробовал адреса разных сайтов, но почему же gethostbyname() всегда возвращает ноль? Выход в Интернет есть. Локальный сервер запущен - localhost.
Стал гуглить, у всех, вроде, возвращает нормальное значение.... В чем может быть дело, подскажите, люди добрые, пожалуйста?!
Заранее спасибо за любые мысли =)