ВУЗ:
Составители:
Рубрика:
47
}
} ;
#define s_addr S_un.S_addr;
#define s_host S_un.S_un_b.s_b2;
#define s_net S_un.S_un_b.s_b1;
#define s_imp S_un.S_un_w.s_w2;
#define s_impno S_un.S_un_b.s_b4;
#define s_lh S_un.S_un_b.s_b3;
При инициализации сокета в этой структуре следует указать адрес IР (32-
битовое уникальное число, идентифицирующее данный компьютер, о прин-
ципах IP-адресации подробнее см. подраздел 7.1.1), с которым будет работать
данный сокет. Если сокет будет работать с любым адресом (например, созда-
ется сервер, который будет доступен из узлов с любым адресом). Адрес для
сокета может быть указан следующим образом:
srv_address.sin_addr.s_addr = INADDR_ANY;
В том случае, если сокет будет работать с определенным IP-адресом (на-
пример, создается приложение-клиент, которое будет обращаться к серверу с
конкретным адресом IP), в указанную структуру необходимо записать реаль-
ный IP-адрес.
Датаграммный протокол
UDP
позволяет посылать пакеты данных одновре-
менно всем рабочим станциям в широковещательном режиме. Для этого не-
обходимо указать адрес как
INADDR_BROADCAST
.
Если известен адрес в виде четырех десятичных чисел, разделенных точ-
кой (именно так его может вводить пользователь), то можно заполнить поле
адреса при помощи функции
inet_addr
(структура
dest_sin
имеет тип
SOCKADDR_IN
):
dest_sin.sin_addr.s_addr = inet_addr("200.200.200.201");
В случае ошибки функция возвращает значение
INADDR_NONE
, что и сле-
дует использовать для проверки.
Обратное преобразование адреса IP в текстовую строку можно при необ-
ходимости легко выполнить с помощью функции
inet_ntoa
, имеющий сле-
дующий прототип:
char FAR *
inet_ntoa(struct in_addr in);
При ошибке эта функция возвращает
NULL
.
}
};
#define s_addr S_un.S_addr;
#define s_host S_un.S_un_b.s_b2;
#define s_net S_un.S_un_b.s_b1;
#define s_imp S_un.S_un_w.s_w2;
#define s_impno S_un.S_un_b.s_b4;
#define s_lh S_un.S_un_b.s_b3;
При инициализации сокета в этой структуре следует указать адрес IР (32-
битовое уникальное число, идентифицирующее данный компьютер, о прин-
ципах IP-адресации подробнее см. подраздел 7.1.1), с которым будет работать
данный сокет. Если сокет будет работать с любым адресом (например, созда-
ется сервер, который будет доступен из узлов с любым адресом). Адрес для
сокета может быть указан следующим образом:
srv_address.sin_addr.s_addr = INADDR_ANY;
В том случае, если сокет будет работать с определенным IP-адресом (на-
пример, создается приложение-клиент, которое будет обращаться к серверу с
конкретным адресом IP), в указанную структуру необходимо записать реаль-
ный IP-адрес.
Датаграммный протокол UDP позволяет посылать пакеты данных одновре-
менно всем рабочим станциям в широковещательном режиме. Для этого не-
обходимо указать адрес как INADDR_BROADCAST.
Если известен адрес в виде четырех десятичных чисел, разделенных точ-
кой (именно так его может вводить пользователь), то можно заполнить поле
адреса при помощи функции inet_addr (структура dest_sin имеет тип
SOCKADDR_IN):
dest_sin.sin_addr.s_addr = inet_addr("200.200.200.201");
В случае ошибки функция возвращает значение INADDR_NONE, что и сле-
дует использовать для проверки.
Обратное преобразование адреса IP в текстовую строку можно при необ-
ходимости легко выполнить с помощью функции inet_ntoa, имеющий сле-
дующий прототип:
char FAR *
inet_ntoa(struct in_addr in);
При ошибке эта функция возвращает NULL.
47
Страницы
- « первая
- ‹ предыдущая
- …
- 45
- 46
- 47
- 48
- 49
- …
- следующая ›
- последняя »
