Название: Проблема с передачей данных в клиент-сервере Отправлено: stochastic от Февраль 12, 2023, 01:36 Привет, делаю первые шаги в Qt, столкнулся с проблемой. В общем цель - передать выбранное изображение с клиента на сервер и отобразить на сервере. Мой код работает для небольших изображений, на больших же изображениях сервер повисает. Лог пишет, что на первой итерации мы считываем, условно, 105кб из отправленных 110кб, на последующих итерациях мы не считываем вообще ничего, т.е. 0, из-за этого информация не прочитывается, и все уходит в вечный цикл и повисает.
Код отправки с клиента: Код: QBuffer buffer; Код приема и отрисовки на сервере: Код: QTcpSocket* pClientSocket = (QTcpSocket*)sender(); Название: Re: Проблема с передачей данных в клиент-сервере Отправлено: kambala от Февраль 12, 2023, 11:27 может за 500мс в m_pTcpSocket->waitForBytesWritten(500) просто все данные не успевают уйти? а проблемную ситуацию, конечно, надо обрабатывать на сервере, чтоб он не зависал.
по клиент-серверному взаимодействию еще можно рассмотреть пример https://wiki.qt.io/WIP-How_to_create_a_simple_chat_application Название: Re: Проблема с передачей данных в клиент-сервере Отправлено: stochastic от Февраль 12, 2023, 13:02 Я пробовал и по дефолту (30000 мс) ставить, результат тот же, просто ждем больше. На сервере я вынес QByteArray в класс и пытаюсь в цикле набить его всей информацией из сокета, но видимо что-то не так в моем понимании приема информации. В примере используется JSON, я с ним пробовал писать и проблем не было, а вот как корректно медиа передать пока не понял.
Название: Re: Проблема с передачей данных в клиент-сервере Отправлено: kambala от Февраль 12, 2023, 13:34 самое простое для начала — добавить qDebug() для вывода в разные части приема на сервере для большего понимания что там происходит внутри (ну или точки останова через отладчик).
тип передаваемых данных значения не имеет: это ж всего лишь байты. думаю, если ты передашь жсон на 200 КБ будет та же проблема. Название: Re: Проблема с передачей данных в клиент-сервере Отправлено: stochastic от Февраль 13, 2023, 01:32 Да, вы правы заметив на счет количества отправляемых данных. Решил все проблемы переписав способ сериализации, в нативных плюсах как-то немного попроще с этим.
Название: Re: Проблема с передачей данных в клиент-сервере Отправлено: kambala от Февраль 13, 2023, 10:52 было бы неплохо выложить решение :) вдруг кому поможет в будущем
|