crossplatform.ru

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


  Ответ в [СИ]select и разрешение имен хостов
Введите ваше имя
Подтвердите код

Введите в поле код из 6 символов, отображенных в виде изображения. Если вы не можете прочитать код с изображения, нажмите на изображение для генерации нового кода.
 

Опции сообщения
 Включить смайлы?
Иконки сообщения
(Опционально)
                                
                                
  [ Без иконки ]
 


Последние 10 сообщений [ в обратном порядке ]
ViGOur Дата 25.2.2010, 21:51
  Что значит не прилаживается?
Для использования 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));
}
Гость_oleg_2_* Дата 25.2.2010, 5:12
  [СИ]select и разрешение имен хостов

язык СИ
ОС UNIX

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

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

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


Просмотр темы полностью (откроется в новом окне)
RSS Текстовая версия Сейчас: 19.4.2024, 3:16