Чат. Клиент-Сервер на QT+boost
Проект типа учебного примера.
Необходимо разработать три модуля, в каждом одна...три функции, лаконично и понятно.
1. Клиентская часть. Соединяется с сервером (постоянное соединение tcp/ip). Отправляет другим подключенным клиентам и получает от них текстовые сообщения.
2. Серверная часть - Listener. Принимает подключения от клиентов, записывает в log-файл Время, IP клиента, Ник-человека. Далее передает соединение другому процессу (Чат-Серверу), с которым клиент продолжает работу.
3. Серверная часть - Чат-Сервер. Принимает соединения от (Listener) с указанным Ником-человека. Реализует обмен сообщений между подключенными клиентами.
Код должен быть написан на QT, для сетевого соединения и транспорта данных - boost.
Listener и Чат-Сервер отдельные процессы, которые независимо могут быть остановлены и запущены снова. При этом не требуя после своей перезагрузки, перезагрузки второго процесса.
При выключении Чат-Сервера все клиентские соединения получают сообщение что сервер выключается.
Текстовые сообщения внутри сервера, на уровне кода, должны быть объектом класса в котором есть атрибут - буфер для строки, время, Ник-отправитель, IP-отправитель.
Подключенным Клиентам транслируются все эти атрибуты: текстовое сообщение, время, Ник, IP.
Все разработанные модуля должны быть кроссплатформенные, собираться под Windows / Linux (32/64)