Глобальные сети компьютеров. Практическое введение в Internet


Параметры сокета - часть 3


PHOSTENT phe; phe = gethostbyname ("ftp.microsoft.com"); if(phe == NULL) { closesocket (srv_socket); MessageBox(NULL, "gethostbyname Error", "Error", MB_OK); return; } memcpy((char FAR *)&(dest_sin.sin_addr ), phe->h_addr , phe->h_length);

В случае ошибки функция gethostbyname возвращает NULL. При этом причину ошибки можно выяснить, проверив код возврата функции WSAGetLastError .

Если же указанный узел найден в базе DNS или в файле HOSTS , функция gethostbyname возвращает указатель на структуру hostent , описанную ниже:

struct hostent { char FAR * h_name; // имя узла char FAR * FAR * h_aliases; // список альтернативных имен short h_addr type; // тип адреса узла short h_length; // длина адреса char FAR * FAR * h_addr _list; // список адресов #define h_addr h_addr_list[0] // адрес }; typedef struct hostent *PHOSTENT ; typedef struct hostent FAR *LPHOSTENT ;

Искомый адрес находится в первом элемента списка h_addr _list[0], на который можно также ссылаться при помощи h_addr. Длина поля адреса находится в поле h_length.




Начало  Назад  Вперед



Книжный магазин