Книга: UNIX: разработка сетевых приложений
Упражнения
Упражнения
1. Проделайте все шаги, описанные в конце раздела 1.9, чтобы получить информацию о топологии вашей сети.
2. Отыщите исходный код для примеров в тексте (см. предисловие). Откомпилируйте и протестируйте клиент времени и даты, представленный в листинге 1.1. Запустите программу несколько раз, задавая каждый раз различные IP- адреса в командной строке.
3. Замените первый аргумент функции socket
, представленной в листинге 1.1, на 9999. Откомпилируйте и запустите программу. Что происходит? Найдите значение errno
, соответствующее выданной ошибке. Как вы можете получить дополнительную информацию по этой ошибке?
4. Измените листинг 1.1: поместите в цикл while
счетчик, который будет считать, сколько раз функция read
возвращает значение, большее нуля. Выведите значение счетчика перед завершением. Откомпилируйте и запустите новую программу-клиент.
5. Измените листинг 1.5 следующим образом. Сначала поменяйте номер порта, заданный функции sin_port
, с 13 на 9999. Затем замените один вызов функции write
на циклический, при котором функция write
вызывается для каждого байта результирующей строки. Откомпилируйте полученный сервер и запустите его в фоновом режиме. Затем измените клиент из предыдущего упражнения (в котором выводится счетчик перед завершением программы), изменив номер порта, заданный функции sin_port
, с 13 на 9999. Запустите этот клиент, задав в качестве аргумента командной строки IP-адрес узла, на котором работает измененный сервер. Какое значение клиентского счетчика будет напечатано? Если это возможно, попробуйте также запустить клиент и сервер на разных узлах.
- 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. Резюме
- Упражнения