Примитивный пример работы сервера и клиента на Linux.
Тестовое задание: Разработать на С++ простые консольные TCP клиент и сервер с использованием linux socket. Код писать в стиле ООП.
Клиент получает из командной строки 3 параметра:
- Текстовое имя клиента
- Номер порта сервера
- Период подключения к серверу в секундах
Клиент с указанным периодом подключается к серверу и отправляет текстовую строку в формате [yyyy-mm-dd hh:mm:ss.ms] "имя_клиента"
Сервер получает из командной строки 1 параметр:
- Номер порта
После запуска сервер слушает указанный порт, получает сообщения от клиентов и записывает их в файл log.txt Каждое подключение клиента должно быть обработано в отдельном потоке. Каждое сообщение должно быть записано в отдельную строку. Сервер должен позволять работать с несколькими клиентами одновременно и обеспечивать корректный доступ к файлу log.txt
Например, запускаем сервер server 3000
Запускаем клиенты client Name1 3000 1 client Name2 3000 2 client Name3 3000 3
Тогда в log.txt ожидаем увидеть приблизительно такую картину (будет зависеть от момента запуска клиентов) [2018-09-19 13:50:01.000] Name1 [2018-09-19 13:50:02.000] Name1 [2018-09-19 13:50:02.010] Name2 [2018-09-19 13:50:03.000] Name1 [2018-09-19 13:50:03.010] Name3 [2018-09-19 13:50:04.000] Name1 [2018-09-19 13:50:04.010] Name2 [2018-09-19 13:50:05.000] Name1 [2018-09-19 13:50:06.000] Name1 [2018-09-19 13:50:06.010] Name2 [2018-09-19 13:50:06.020] Name3
и так далее.