Russian Qt Forum

Qt => Работа с сетью => Тема начата: SektorCT от Апрель 21, 2023, 23:42



Название: Пакеты данных между сервером и клиентами
Отправлено: SektorCT от Апрель 21, 2023, 23:42
Всем привет.
У меня между сервером и клиентами бегают пакеты с формате JSon. Формирую я их с обоих сторон.
Например клиент регистрируется и вводит данные(создается класс с enum о том что это регистрация), сервер принял отправил ответ(формируется другой класс, enum с тем что success и так же какое то сообщение типа alert). Клиент подключается, данных чуть меньше чем для регистрации, так же класс с меткой, сервер ответил, опять пакет с меткой.
Как видно куча классов со своей меткой, небольшые отличия у некоторых по данным что они собирают.

Можно ли как то изящнее придумать чтобы не плодить кучу классов(у меня уже их больше 10)?
Посоветуйте пожалуйста как с такими пакетами можно лучшую работу организовать?
Спасибо


Название: Re: Пакеты данных между сервером и клиентами
Отправлено: kambala от Апрель 22, 2023, 10:02
можно классы заменить просто функциями, если там немного параметров. а в целом, ничего плохого в том, что у тебя много классов, нет.


Название: Re: Пакеты данных между сервером и клиентами
Отправлено: SektorCT от Апрель 22, 2023, 13:51
можно классы заменить просто функциями, если там немного параметров. а в целом, ничего плохого в том, что у тебя много классов, нет.

Тут скорее был вопрос не про плохо ли это, а про то что может есть еще какой то способ с большим количеством пакетов(а следовательно и классов).
Один класс например от другого отличается в +1 строку данных. Еще и придумывать именование этих классов, жесть.
Думал в сторону шаблонов, но чувствую что это только ухудшит и читаемость и понимание. Да еще и путаницу наведу самому же себе.


Название: Re: Пакеты данных между сервером и клиентами
Отправлено: SektorCT от Апрель 22, 2023, 13:59
Вот например для подключение у меня класс Connect в котором выставляется маркер enum E_CONNECT, а вот если подключение прошло то обратно летит ConnectSuccess с маркером enum E_CONNECTSUCCESS

Вот и думаю что я тут чет не правильно реализовал. Или класс на конект и результат должен быть один типа Connect но уже с разными маркерами. Или просто классы RequestConnect и AnswerConnect.
В общем ищу какое то изящное решение)


Название: Re: Пакеты данных между сервером и клиентами
Отправлено: kambala от Апрель 22, 2023, 18:17
разные классы для request и response — абсолютно нормальный подход, ведь это ж разные сущности. ну можно их унаследовать от базового класса с параметром, если хочешь.