crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

 
Ответить в данную темуНачать новую тему
> [СИ]select и разрешение имен хостов, [СИ]select и разрешение имен хостов
Гость_Гость_oleg_2_*_*
сообщение 25.2.2010, 5:12
Сообщение #1





Гости








    


[СИ]select и разрешение имен хостов

язык СИ
ОС UNIX

Пытаюсь написать простой малопроцессный
сервер (однонитевой).
Малопроцессный подразумевает:
один процесс сервера обслуживает несколько клиентов.
Использую TCP-сокеты и select.
Select занимает центральное место, а все
остальное к нему прилажено.
Все функции сокетов, pipe-каналов и файлов
хорошо прилаживаются к select.
Но потребовалось разрешать имена хостов
в ip-адреса, а функция
hp=gethostbyname(serv_name);
которой я раньше пользовался,
не прилаживается.

Существует ли какой-нибудь способ
разрешения имен хостов не подвисая.

Кто знает прошу ответить.


Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
ViGOur
  опции профиля:
сообщение 25.2.2010, 21:51
Сообщение #2


Мастер
******

Группа: Модератор
Сообщений: 3290
Регистрация: 9.10.2007
Из: Москва
Пользователь №: 4

Спасибо сказали: 231 раз(а)




Репутация:   40  


Что значит не прилаживается?
Для использования 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));
}
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 19.9.2019, 19:37