crossplatform.ru

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


  Ответ в Вотрос о передаче текста через TCP сокет
Введите ваше имя
Подтвердите код

Введите в поле код из 6 символов, отображенных в виде изображения. Если вы не можете прочитать код с изображения, нажмите на изображение для генерации нового кода.
 

Опции сообщения
 Включить смайлы?
Иконки сообщения
(Опционально)
                                
                                
  [ Без иконки ]
 


Последние 10 сообщений [ в обратном порядке ]
fsMark Дата 23.4.2008, 16:05
  Спасибо, вроде разобрался))
ViGOur Дата 23.4.2008, 16:00
  Извини, был не внимателен, по всей видимости не проснулся тогда. :)
Нужно использовать qint64 QIODevice::write ( const char * data, qint64 maxSize )
А именно сделать примерно так:
QByteArray arrBlock= str.toAscii();
pSocket->write( arrBlock, arrBlock.length());
fsMark Дата 23.4.2008, 15:13
  На другом конце работает не мой клиент а приложение типа телнета, оно получает целиком все что передали и анализирует.
Тоесть будут передоваться короткие тестовые команды.

А можно насчет "иначе используй qint64 QIODevice::write ( const QByteArray & byteArray )" можно поподробней, а чтото я не воткнул))
ViGOur Дата 23.4.2008, 7:51
  Встречный вопрос, а зачем тебе от него избавлять?
На другой стороне читай так же как и пишешь из QDataStream с версией и все.

Иначе используй qint64 QIODevice::write ( const QByteArray & byteArray ).
fsMark Дата 23.4.2008, 0:26
  Передаю строку клиенту при помощи такой прцедуры:
CODE
sendToClient(QTcpSocket* pSocket, const QString& str)
{
QByteArray arrBlock;
QDataStream out(&arrBlock, QIODevice::WriteOnly);
out.setVersion(QDataStream::Qt_4_2);
out << str;
pSocket->write(arrBlock) ;
}

Строка передаеться почти нормально, только первый позиции добавляеться число... вроде как длина.
Вопрос такой как можно от этого числа избавиться?
Просмотр темы полностью (откроется в новом окне)
RSS Текстовая версия Сейчас: 19.4.2024, 2:48