[СИ]select и разрешение имен хостов
язык СИ
ОС UNIX
Пытаюсь написать простой малопроцессный
сервер (однонитевой).
Малопроцессный подразумевает:
один процесс сервера обслуживает несколько клиентов.
Использую TCP-сокеты и select.
Select занимает центральное место, а все
остальное к нему прилажено.
Все функции сокетов, pipe-каналов и файлов
хорошо прилаживаются к select.
Но потребовалось разрешать имена хостов
в ip-адреса, а функция
hp=gethostbyname(serv_name);
которой я раньше пользовался,
не прилаживается.
Существует ли какой-нибудь способ
разрешения имен хостов не подвисая.
Кто знает прошу ответить.
Что значит не прилаживается?
Для использования gethostbyname в unix нужно подключить netdb.h, пример использования:
#include <stdio.h>
#include <netdb.h>
#include <sys/types.h>
#include <netinet/in.h>
#include <arpa/inet.h>
void main(void)
{
hostent *pHost = gethostbyname("crossplatform.ru");
if( pHost==0)
{
herror( "gethostbyname failed");
exit(1);
}
in_addr *pAddr=(in_addr * )pHost->h_addr;
printf("IP Address: %s\n", inet_ntoa( *pAddr));
}
Форум Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)