Russian Qt Forum
Ноябрь 23, 2024, 00:45 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: QSocket - как принять и отправить массив данных unsigned char?  (Прочитано 11116 раз)
Germiona
Гость
« : Ноябрь 12, 2008, 14:21 »

Добрый день!

Как можно принять/отправить массив данных типа unsigned char?

Функции readBlock() и writeBlock() работают только с типом char

 Непонимающий
Записан
pastor
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 2901



Просмотр профиля WWW
« Ответ #1 : Ноябрь 12, 2008, 14:35 »

Можно так:

Код:
//writting

unsigned char *array_out = new unsigned char[<size>];
...
socket->writeBlock(array_out, sizeof(unsigned char)*<size>);
....
delete []array_out;
....

//reading

unsigned char *array_in = new unsigned char[<size>];
...
socket->readBlock(array_in, sizeof(unsigned char)*<size>);
....
delete []array_in;
....
« Последнее редактирование: Ноябрь 12, 2008, 14:46 от pastor » Записан

Integrated Computer Solutions, Inc. (ICS)
http://www.ics.com/
Germiona
Гость
« Ответ #2 : Ноябрь 12, 2008, 14:58 »

Код:
[color=navy]//writting

unsigned char *array_out = new unsigned char[<size>];
...
socket->writeBlock(array_out, sizeof(unsigned char)*<size>);
....
delete []array_out;
....
[/color]

Не всё так просто....

При компиляции выдается ошибка:

Код:
No matching function for call to QSocket::writeBlock(unsigned char*, int)
Candidates are: Q_LONG QSocket::writeBlock(const char *, long unsigned int)

Записан
BRE
Гость
« Ответ #3 : Ноябрь 12, 2008, 15:23 »

Не всё так просто....

При компиляции выдается ошибка:

Код:
No matching function for call to QSocket::writeBlock(unsigned char*, int)
Candidates are: Q_LONG QSocket::writeBlock(const char *, long unsigned int)

А может просто socket->writeBlock( (char*)array_out, sizeof(unsigned char)*<size>);
или место приведения типа static_cast<char*>( array_out ) какой использовать.
Записан
pastor
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 2901



Просмотр профиля WWW
« Ответ #4 : Ноябрь 12, 2008, 15:24 »

Код:
socket->writeBlock((const char *)array_out, sizeof(unsigned char)*<size>);

socket->readBlock((char *)array_in, sizeof(unsigned char)*<size>);
Записан

Integrated Computer Solutions, Inc. (ICS)
http://www.ics.com/
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.049 секунд. Запросов: 23.