crossplatform.ru

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

=DENIS=
  опции профиля:
сообщение 28.3.2012, 15:35
Сообщение #1


Новичок


Группа: Новичок
Сообщений: 1
Регистрация: 10.2.2012
Пользователь №: 3214

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




Репутация:   0  


Начал изучать QT. Дошло дело до сетевой поддержки. Соединяюсь с сервером по QTcpSocket. Открываю поток QDataStream.
Читаю в слоте, который привязан к сигналу readyRead() данные. Когда в получаю сообщение типа "IncomingFile\n" Читаю байты таким образом.

QByteArray array1;
dataStream >> array1;

QByteArray array2;
dataStream >> array2;

....


Записываются в поток байты на серевере аналогично.

Вот, у меня возник такой вопрос. Если данные не поступили еще, что тогда произойдет при считывании например array2? Он останется нулевым массивом? Или произойдет ожидание поступления данных? Как организовать красиво код, если сервер шлет подряд много таких "ByteArrays".

Спасибо.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов (1 - 1)
sidsukana
  опции профиля:
сообщение 29.3.2012, 6:05
Сообщение #2


Участник
**

Группа: Участник
Сообщений: 158
Регистрация: 23.12.2010
Из: Челябинск
Пользователь №: 2296

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




Репутация:   2  


bytesAvailable() - покажет сколько байт пришло, зная структуру, можно определить, все ли данные пришли. Если не все...с таким не сталкивался еще)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

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


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


RSS Рейтинг@Mail.ru Текстовая версия Сейчас: 11.7.2025, 15:42