crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

> Передать объект через TCP
Norrius
  опции профиля:
сообщение 24.7.2012, 16:51
Сообщение #1


Студент
*

Группа: Участник
Сообщений: 26
Регистрация: 30.12.2011
Пользователь №: 3105

Спасибо сказали: 0 раз(а)




Репутация:   0  


Добрый день. Я пишу небольшой проект, содержащийсервер

Добрый день. Я пишу небольшой проект, содержащий серверную и клиентскую часть. В частности, мне нужно, чтобы клиент имел копию некоторого класса, имеющегося на сервере. Собственно, вопрос - как передать объект класса через TCP сокет? Нужно ли мне вручную создавать QByteArray, содержащий закодированную информацию об объекте (а он может содержать другие классы и структуры), или есть более простые способы?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов
iReset
  опции профиля:
сообщение 10.8.2012, 17:10
Сообщение #2


Участник
**

Группа: Участник
Сообщений: 178
Регистрация: 6.6.2012
Пользователь №: 3414

Спасибо сказали: 23 раз(а)




Репутация:   2  


Цитата(Norrius @ 10.8.2012, 17:25) *
...будет ли получена из потока вся информация, которая была отправлена с другой стороны? Или только та, что уже пришла? Иначе говоря, будет ли readyRead() вызван, когда данные начинают приходить или когда заканчивают?

Сигнал посылается, как только появляется новая порция данных. QIODevice ничего не знает о том объёме данных, которые нужны принимающей стороне. Новая порция - один сигнал. Информацию о доступном количестве байт можно получить функцией bytesAvailable(). Если данных недостаточно, можно просто их не читать и дождаться ещё одного сигнала. Прочитать порцию нужного размера можно, когда она полностью попадёт в буфер.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме
- Norrius   Передать объект через TCP   24.7.2012, 16:51
- - ViGOur   В Qt connection points нет насколько я знаю. Нуж...   24.7.2012, 18:58
- - Алексей1153   сериализация в XML - универсальное в данном случае...   24.7.2012, 19:41
- - Norrius   Использовать memcpy() у меня не получается (хотя, ...   24.7.2012, 23:16
- - ViGOur   сервер memcpy(buff, &tmp, sizeof(p...   25.7.2012, 8:46
- - Iron Bug   процедура передачи класса - даже не сериализация, ...   25.7.2012, 12:42
- - Алексей1153   Цитата(Norrius @ 25.7.2012, 2:16) е будет...   25.7.2012, 22:44
- - ssoft   Цитата(ViGOur @ 25.7.2012, 9:46) сервер m...   26.7.2012, 6:52
- - ViGOur   Цитата(ssoft @ 26.7.2012, 7:52) Это работ...   26.7.2012, 8:24
- - Алексей1153   Цитата(ssoft @ 26.7.2012, 9:52) Если клас...   26.7.2012, 10:41
- - Norrius   Спасибо всем за ответы, буду изучать сериализацию ...   26.7.2012, 13:50
- - Norrius   Хм, похоже, был откат форума. Что ж, нужно все-так...   8.8.2012, 14:44
- - ViGOur   Угумс, снова посыпалась БД.   8.8.2012, 14:50
- - Norrius   Еще один небольшой вопрос: если когда испускается ...   10.8.2012, 16:25
- - iReset   Цитата(Norrius @ 10.8.2012, 17:25) ...буд...   10.8.2012, 17:10
|- - Norrius   Цитата(iReset @ 10.8.2012, 18:10) Информа...   10.8.2012, 17:33
- - Norrius   Спасибо, вроде бы получилось.   10.8.2012, 19:21


Тема закрытаНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 28.3.2024, 12:33