Книга: UNIX: разработка сетевых приложений
1.6. Таблица соответствия примеров технологии клиент-сервер
1.6. Таблица соответствия примеров технологии клиент-сервер
Технологии сетевого программирования иллюстрируются в этой книге на двух основных примерах:
? клиент-сервер времени и даты (описание которого мы начали в листингах 1.1, 1.2 и 1.5), и
? эхо-клиент-сервер (который появится в главе 5).
Чтобы обеспечить удобный поиск различных тем, которых мы касаемся в этой книге, мы объединили разработанные нами программы и сопроводили их номерами листингов, в которых приведен исходный код. В табл. 1.1 перечислены версии клиента времени и даты (две из них мы уже видели). В табл. 1.2 перечисляются версии сервера времени и даты. В табл. 1.3 представлены версии эхо-клиента, а в табл. 1.4 — версии эхо-сервера.
Таблица 1.1. Различные версии клиента времени и даты
Листинг | Описание |
---|---|
1.1 | TCP/Ipv4, зависимый от протокола |
1.2 | TCP/Ipv6, зависимый от протокола |
11.2 | TCP/Ipv4, зависимый от протокола, вызывает функции gethostbyname и getservbyname |
11.5 | TCP, независимый от протокола, вызывает функции getaddrinfo и tcp_connect |
11.10 | UDP, независимый от протокола, вызывает функции getaddrinfo и udp_connect |
16.7 | TCP, использует неблокирующую функцию connect |
31.2 | TCP/IPv4, зависимый от протокола |
Д.1 | TCP, зависимый от протокола, генерирует SIGPIPE |
Д.2 | TCP, зависимый от протокола, печатает размер буфера сокета и MSS |
Д.5 | TCP, зависимый от протокола, допускает использование имени узла (функция gethostbyname) или IP-адреса |
Д.6 | TCP, независимый от протокола, допускает использование имени узла (функция gethostbyname). |
Таблица 1.2. Различные версии сервера времени и даты, рассматриваемые в данной книге
Листинг | Описание |
---|---|
1.5 | TCP/IPv4, зависимый от протокола |
11.7 | TCP, независимый от протокола, вызывает getaddrinfo и tcp_listen |
11.8 | TCP, независимый от протокола, вызывает getaddrinfo и tcp_listen |
11.13 | UDP, независимый от протокола, вызывает getaddrinfo и udp_server |
13.2 | TCP, независимый от протокола, выполняется как автономный демон |
13.4 | TCP, независимый от протокола, порожденный демоном inetd |
Таблица 1.3. Различные версии эхо-клиента, рассматриваемые в данной книге
Листинг | Описание |
---|---|
5.3 | TCP/IPv4, зависимый от протокола |
6.1 | TCP, использует функцию select |
6.2 | TCP, использует функцию select и работает в пакетном режиме |
8.3 | UDP/IPv4, зависимый от протокола |
8.5 | UDP, проверяет адрес сервера |
8.7 | UDP, вызывает функцию connect для получения асинхронных ошибок |
14.2 | UDP, тайм-аут при чтении ответа сервера с использованием сигнала SIGALRM |
14.4 | UDP, тайм-аут при чтении ответа сервера с использованием функции select |
14.5 | UDP, тайм-аут при чтении ответа сервера с использованием опции сокета SO_RCVTIMEO |
14.7 | TCP, использует интерфейс /dev/poll |
14.8 | TCP, использует интерфейс kqueue |
15.4 | Поток домена Unix, зависит от протокола |
15.6 | Дейтаграмма домена Unix, зависит от протокола |
16.1 | TCP, использует неблокируемый ввод-вывод |
16.6 | TCP, использует два процесса (функцию fork) |
16.14 | TCP, устанавливает соединение, затем посылает пакет RST |
20.1 | UDP, широковещательный, ситуация гонок |
20.2 | UDP, широковещательный, ситуация гонок |
20.3 | UDP, широковещательный, для устранения ситуации гонок используется функция pselect |
20.5 | UDP, широковещательный, для устранения ситуации гонок используются функции sigsetjmp и siglongmp |
20.6 | UDP, широковещательный, для устранения ситуации гонок в обработчике сигнала используется IPC |
22.4 | UDP, увеличение надежности протокола за счет применения повторной передачи, тайм-аутов и порядковых номеров |
26.1 | TCP, использование двух потоков |
27.4 | TCP/IPv4, задание маршрута от отправителя |
27.5 | UDP/IPv6, задание маршрута от отправителя |
Таблица 1.4. Различные версии эхо-сервера, рассматриваемые в данной книге
Листинг | Описание |
---|---|
5.1 | TCP/IPv4, зависимый от протокола |
5.9 | TCP/IPv4, зависимый от протокола, корректно обрабатывает завершение всех дочерних процессов |
6.3 | TCP/IPv4, зависимый от протокола, использует функцию select, один процесс обрабатывает всех клиентов |
6.5 | TCP/IPv4, зависимый от протокола, использует функцию poll, один процесс обрабатывает всех клиентов |
8.1 | UDP/IPv4, зависимый от протокола |
8.14 | TCP и UDP/IPv4, зависимый от протокола, использует функцию select |
14.6 | TCP, использует стандартный ввод-вывод |
15.3 | Доменный сокет Unix, зависимый от протокола |
15.5 | Дейтаграмма домена Unix, зависит от протокола |
15.13 | Доменный сокет Unix, с передачей данных, идентифицирующих клиента |
22.3 | UDP, печатает полученный IP-адрес назначения и имя полученного интерфейса, обрезает дейтаграммы |
22.13 | UDP, связывает все адреса интерфейсов |
25.2 | UDP, использование модели ввода-вывода, управляемого сигналом |
26.2 | TCP, один поток на каждого клиента |
26.3 | TCP, один поток на каждого клиента, машинонезависимая (переносимая) передача аргумента |
27.4 | TCP/IPv4, печатает полученный маршрут от отправителя |
27.6 | UDP/IPv4, печатает полученный маршрут от отправителя и обращает его |
28.21 | UDP, использует функцию icmpd для получения асинхронных ошибок |
Д.9 | UDP, связывает все адреса интерфейсов |
- 1.1. Введение
- 1.2. Простой клиент времени и даты
- 1.3. Независимость от протокола
- 1.4. Обработка ошибок: функции-обертки
- 1.5. Простой сервер времени и даты
- 1.6. Таблица соответствия примеров технологии клиент-сервер
- 1.7. Модель OSI
- 1.8. История сетевого обеспечения BSD
- 1.9. Сети и узлы, используемые в примерах
- 1.10. Стандарты Unix
- 1.11. 64-разрядные архитектуры
- 1.12. Резюме
- Упражнения
- Запуск InterBase-сервера
- Расширенная установка InterBase-сервера
- Совместимость клиентов и серверов различных версий
- Клиенты 3-го диалекта
- Статистика InterBase-сервера
- Сервер для InterBase
- Аватар идеального клиента
- 1.3.3. Достоинства и недостатки анонимных прокси-серверов
- Минимальный состав сервера InterBase SuperServer
- Отличительные особенности сервера Yaffil
- Безопасная работа с внешними таблицами
- Встраиваемый сервер