You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
В результате выполнения этого задания вы научитесь создавать TCP сокеты, принимать и отправлять данные, а также работать с протоколами информационного взаимодействия.
Инструкция к заданию
Скачать исполняемый файл и библиотеки сервера — это необходимо для проверки и отладки.
Скачать прекод клиента.
Реализовать функции в клиентском приложении в соответствии с заданием.
Задание 1
Необходимо разработать функции приложения.
Реализовать следующие методы:
TCPclient::TCPclient
TCPclient::SendRequest
TCPclient::ConnectToHost
TCPclient::DisconnectFromHost
TCPclient::ProcessingData
MainWindow::DisplayTime
MainWindow::DisplayStat
MainWindow::on_pb_request_clicked
В приложении должны использоваться сигналы:
sig_sendTime
sig_Disconnected
sig_connectStatus
sig_sendStat
Необходимо реализовать обработчик и вывод в лог следующих сообщений:
приёма времени от сервера,
вывода статистики сервера.
Приложение должно подключаться к серверу по введённому пользователем адресу и порту.
Приложение должно отключаться от сервера.
Правила приёма работы
Отправлена ссылка на репозиторий с кодом ДЗ.
Критерий зачёта
реализованы все методы из задания;
в приложении используются все сигналы, перечисленные в задании;
приложение подключается и отключается от сервера;
реализован приём и вывод всех сигналов из задания;
ответ от сервера выводится в удобном для пользователя виде. Пример: «Текущие время и дата на сервере 01 фев 2001 21:53:12», а не в виде массива байт.
Дополнительное задание
Дополнительное задание не подлежит проверке.
Реализовать приём и отправку всех сообщений согласно Протоколу информационного взаимодействия.
Протокол информационного взаимодействия:
сервер отвечает на сообщения клиента;
на сервер можно записать строковые данные, которые он интерпретирует как QString;
ёмкость сервера — 1000 байт, как только ёмкость израсходуется, сервер будет отвечать ошибкой о нехватке места;
сервер отвечает на сообщения клиента согласно настоящему протоколу информационного взаимодействия — ПИВ;
в поле статус заголовка выводится или успешный статус или код ошибки в соответствии с ПИВ
для запроса информации клиенту необходимо заполнить заголовок в соответствии с текущим ПИВ и передать на сервер;
в случае если производится запрос данных с сервера, передаётся только заголовок;
все структуры данных на сервере выровнены по одному байту;
подключение осуществляется на адрес 127.0.0.1, порт 12345
Общий формат сообщений
Заголовок сообщения
Данные
Формат заголовка сообщения
Поле
Тип данных
Размер, байт
Идентификатор начала сообщения
uint16
2
Идентификатор данных в сообщении
uint16
2
Статус обработки сообщения
uint8
1
Размер данных далее, байт
uint32
4
Форматы сообщений (Идентификатор данных в сообщении)