Программирование сокетов

Модератор: Модераторы разделов

fleisch
Сообщения: 40
ОС: OpenSuSE Linux 11.1

Программирование сокетов

Сообщение fleisch »

Блин, вот изучаю программирование сокетов. В инете полно инфы как заполнить структуру sockaddr_in. Но про поле sin_addr написано только как его заполнить, используя имя сервера, а про то, как преобразовать обычный IP-адрес, никто не упомянул даже. Плиз, есть переменная ip_address = "192.168.88.2" - как его запихнуть в sin_addr ???
Спасибо сказали:
Аватара пользователя
CycaHuH
Сообщения: 85
ОС: FreeBSD; Archlinux; Calculate

Re: Программирование сокетов

Сообщение CycaHuH »

Так например

Код: Выделить всё

struct hostent *host;
struct sockaddr_in saddr;

host = gethostbyname (ip_address);

saddr.sin_family= AF_INET;
saddr.sin_addr = *((struct in_addr *) host->h_addr);
saddr.sin_port = htons (port);
Спасибо сказали:
Аватара пользователя
MUTOgen
Сообщения: 343
Статус: i like the way you move
ОС: OpenSuse 11.1

Re: Программирование сокетов

Сообщение MUTOgen »

возможно так?

....
struct sockaddr_in servaddr;
...
inet_pton(AF_INET, ip_address, &servaddr.sin_addr);
...

P.S. не проверял, за точность не отвечаю.

UPD: #include <arpa/inet.h>
Спасибо сказали:
fleisch
Сообщения: 40
ОС: OpenSuSE Linux 11.1

Re: Программирование сокетов

Сообщение fleisch »

Всем спасибо за ответ :)) Помогло :)
Спасибо сказали:
watashiwa_daredeska
Бывший модератор
Сообщения: 4038
Статус: Искусственный интеллект (pre-alpha)
ОС: Debian GNU/Linux

Re: Программирование сокетов

Сообщение watashiwa_daredeska »

Я пользуюсь getaddrinfo и не парюсь.
Спасибо сказали:
Аватара пользователя
MUTOgen
Сообщения: 343
Статус: i like the way you move
ОС: OpenSuse 11.1

Re: Программирование сокетов

Сообщение MUTOgen »

fleisch писал(а):
27.08.2008 19:46
Всем спасибо за ответ :)) Помогло :)

Стивенсу спасибо за книжку "Unix. Разработка сетевых приложений"
Спасибо сказали: