Skip to content

Latest commit

 

History

History
34 lines (27 loc) · 2.79 KB

README.md

File metadata and controls

34 lines (27 loc) · 2.79 KB

tcp_data_sender

Назначение

Проект решает задачу передачи с клиента на сервер двух типов данных:

  • "human readable" данные (фактически, файлы *.json);
  • данные в бинарном виде (сериализованные из POD-структур).
    Таким образом, можно поочередно передать произвольное количество информационных объектов обоих типов и посмотреть на сервере время, затраченное на разбор всего полученного сообщения, и среднее время сериализации одного информационного объекта.

Состав проекта

Проект состоит из двух графических приложений:

  • clientDataSender (tcp-клиент);
  • serverDataReceiver (tcp-сервер);

Сборка проекта

Приложения собираются стандартным образом:
qmake && make
Зависимости:

  • гарантированно подойдут Qt 5.7.1 или Qt 5.15.2 (возможно, подойдут и более ранние версии, например Qt5.3.*);
  • Boost.PropertyTree (header-only library from boost).

Конфигурационные файлы

На клиенте предусмотрена возможность ввода сетевых настроек. Введенные сетевые настройки сохраняются в файле settings.ini.
На сервере предусмотрено поле для ввода номера tcp-порта (после смены порта необходимо перезапустить tcp-сервер с помощью кнопки "Активировать tcp-сервер"). Default-значение порта сервера установлено в исходном коде, конфига нет. Сервер работает как через IP-адрес интерфейса, так и через localhost. Сервер поддерживает возможность приема данных от нескольких клиентов. Текущее количество обрабатываемых соединений - 3. Его можно изменить в исходном коде (значение передается в конструктор класса TcpServer).

TODO:

  1. Световой индикатор, изменяющий цвет при подключении клиента, не способен отразить количество подключений. Нужно что-то придумать.