UNIX: разработка сетевых приложений | страница 18



Технологии сетевого программирования иллюстрируются в этой книге на двух основных примерах:

■ клиент-сервер времени и даты (описание которого мы начали в листингах 1.1, 1.2 и 1.5), и

■ эхо-клиент-сервер (который появится в главе 5).

Чтобы обеспечить удобный поиск различных тем, которых мы касаемся в этой книге, мы объединили разработанные нами программы и сопроводили их номерами листингов, в которых приведен исходный код. В табл. 1.1 перечислены версии клиента времени и даты (две из них мы уже видели). В табл. 1.2 перечисляются версии сервера времени и даты. В табл. 1.3 представлены версии эхо-клиента, а в табл. 1.4 — версии эхо-сервера.


Таблица 1.1. Различные версии клиента времени и даты

ЛистингОписание
1.1TCP/Ipv4, зависимый от протокола
1.2TCP/Ipv6, зависимый от протокола
11.2TCP/Ipv4, зависимый от протокола, вызывает функции gethostbyname и getservbyname
11.5TCP, независимый от протокола, вызывает функции getaddrinfo и tcp_connect
11.10UDP, независимый от протокола, вызывает функции getaddrinfo и udp_connect
16.7TCP, использует неблокирующую функцию connect
31.2TCP/IPv4, зависимый от протокола
Д.1TCP, зависимый от протокола, генерирует SIGPIPE
Д.2TCP, зависимый от протокола, печатает размер буфера сокета и MSS
Д.5TCP, зависимый от протокола, допускает использование имени узла (функция gethostbyname) или IP-адреса
Д.6TCP, независимый от протокола, допускает использование имени узла (функция gethostbyname).

Таблица 1.2. Различные версии сервера времени и даты, рассматриваемые в данной книге

ЛистингОписание
1.5TCP/IPv4, зависимый от протокола
11.7TCP, независимый от протокола, вызывает getaddrinfo и tcp_listen
11.8TCP, независимый от протокола, вызывает getaddrinfo и tcp_listen
11.13UDP, независимый от протокола, вызывает getaddrinfo и udp_server
13.2TCP, независимый от протокола, выполняется как автономный демон
13.4TCP, независимый от протокола, порожденный демоном inetd

Таблица 1.3. Различные версии эхо-клиента, рассматриваемые в данной книге

ЛистингОписание
5.3TCP/IPv4, зависимый от протокола
6.1TCP, использует функцию select
6.2TCP, использует функцию select и работает в пакетном режиме
8.3UDP/IPv4, зависимый от протокола
8.5UDP, проверяет адрес сервера
8.7UDP, вызывает функцию connect для получения асинхронных ошибок
14.2UDP, тайм-аут при чтении ответа сервера с использованием сигнала SIGALRM
14.4UDP, тайм-аут при чтении ответа сервера с использованием функции select
14.5UDP, тайм-аут при чтении ответа сервера с использованием опции сокета SO_RCVTIMEO