Лабораторная 3

Тема: Разработка клиент-серверной программы на основе сетевой библиотеки Boost.Asio.

Задание:
Используя сетевую библиотеку Boost.Asio разработать программы асинхронного сервера, клиента на протоколе TCP [1]. Реализация - на языке C/C++, консольные приложения.

Замечание. Серверная программа должна находить номер свободного порта и выводить его на экран. При запуске клиентской программы задавать со строки IP адрес сервера и порт (см. , например, [2], стр. 338-342, функции bind, getsockname).

Полезные ссылки:
1. Boost.Asio http://habrahabr.ru/post/192284/
2. Фейт С. TCP/IP: Архитектура, протоколы, реализация (включая IP версии 6 и IP Security). – М.: Лори, 2000. – 424 с.

Вариант первый.

Клиент отправляет текстовое сообщение. В ответе сервер возвращает то же самое преобразованное сообщение, в котором каждое слово «перевернуто» относительно исходного, но сохранен порядок их расположения.

Вариант второй.

При запуске клиента пользователь задает число i от 1 до 10. Клиент передает серверу в цикле это число с задержкой в i секунд между передачей. Сервер возвращает клиенту квадрат числа i.
Например:
1-й клиент посылает число 1 в цикле с задержкой в 1 сек.
2-ой клиент посылает число 2 с задержкой в 2 сек.
3-й клиент посылает число 3 в цикле с задержкой в 3 сек.
Сервер отображает информацию полученную от клиентов. Если у Вас правильно организован асинхронный ввод/вывод, то на экран со стороны сервера будет выводиться с чередованием числа 1, 2 и 3. Причем частота появления определенного числа будет зависеть от задержки по времени его передачи.

Полезная ссылка: http://habrahabr.ru/post/192284/