Книга: UNIX: разработка сетевых приложений
11.1. Введение
11.1. Введение
Во всех предшествующих примерах мы использовали численные адреса узлов (например, 206.6.226.33) и численные номера портов для идентификации серверов (например, порт 13 для стандартного сервера времени и даты и порт 9877 для нашего эхо-сервера). Однако по ряду соображений предпочтительнее использовать имена вместо чисел: во-первых, имена проще запоминаются, во-вторых, если численный адрес поменяется, имя можно сохранить, и в-третьих, с переходом на IPv6 численные адреса становятся значительно длиннее, что увеличивает вероятность ошибки при вводе адреса вручную. В этой главе описываются функции, выполняющие преобразование имен и адресов: gethostbyname
и gethostbyaddr
для преобразования имен узлов и IP-адресов, и getservbyname
и getservbyport
для преобразования имен служб и номеров портов. Здесь же мы рассмотрим две независимые от протоколов функции getaddrinfo
и getnameinfo
, осуществляющие преобразование между IP-адресами и именами узлов, а также между именами служб и номерами портов.
- 11.1. Введение
- 11.2. Система доменных имен
- 11.3. Функция gethostbyname
- 11.4 Функция gethostbyaddr
- 11.5. Функции getservbyname и getservbyport
- 11.6. Функция getaddrinfo
- 11.7. Функция gai_strerror
- 11.8. Функция freeaddrinfo
- 11.9. Функция getaddrinfo: IPv6
- 11.10. Функция getaddrinfo: примеры
- 11.11. Функция host_serv
- 11.12. Функция tcp_connect
- 11.13. Функция tcp_listen
- 11.14. Функция udp_client
- 11.15. Функция udp_connect
- 11.16. Функция udp_server
- 11.17. Функция getnameinfo
- 11.18. Функции, допускающие повторное вхождение
- 11.19. Функции gethostbyname_r и gethostbyaddr_r
- 11.20. Устаревшие функции поиска адресов IPv6
- 11.21. Другая информация о сетях
- 11.22. Резюме
- Упражнения