![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
![]() |
sibmail |
![]()
Сообщение
#1
|
Студент ![]() Группа: Участник Сообщений: 63 Регистрация: 20.3.2009 Пользователь №: 626 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
Надо передать строку по сети другому приложению (не Qt), чтобы на другом конце получили строковые данные, а не бинарные
Был пример QByteArray arrBlock; QDataStream out(&arrBlock, QIODevice::WriteOnly); //out.setVersion(QDataStream::Qt_4_2); out << quint16(0) << lineEdit->text(); out.device()->seek(0); out << quint16(arrBlock.size() - sizeof(quint16)); m_pTcpSocket->write(arrBlock); Я переделал QDataStream на QTextStream, но никакой передачи не наблюдается. Подскажите что не так и как сделать )) |
|
|
LE0N |
![]()
Сообщение
#2
|
Студент ![]() Группа: Участник Сообщений: 97 Регистрация: 10.3.2009 Из: Беларусь Пользователь №: 604 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
Цитата out.device()->seek(0); out << quint16(arrBlock.size() - sizeof(quint16)); А с чего ты взял, что у тебя первые два байта заменятся? А не получится в итоге: out << quint16(arrBlock.size() - sizeof(quint16)) << quint16(0) << lineEdit->text(); |
|
|
sibmail |
![]()
Сообщение
#3
|
Студент ![]() Группа: Участник Сообщений: 63 Регистрация: 20.3.2009 Пользователь №: 626 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
Цитата out.device()->seek(0); out << quint16(arrBlock.size() - sizeof(quint16)); А с чего ты взял, что у тебя первые два байта заменятся? А не получится в итоге: out << quint16(arrBlock.size() - sizeof(quint16)) << quint16(0) << lineEdit->text(); я даже не знаю как надо, первый раз с этим... |
|
|
LE0N |
![]()
Сообщение
#4
|
Студент ![]() Группа: Участник Сообщений: 97 Регистрация: 10.3.2009 Из: Беларусь Пользователь №: 604 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
А ты узнай...
И протокол тоже - узнай. А то ведь можно и quint32 передавать...Скорее всего так оно и есть....Поэтому у тебя ни чего не отображает...в приложении... |
|
|
trdm |
![]()
Сообщение
#5
|
Дмитрий Трошин ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 575 Регистрация: 12.1.2008 Пользователь №: 68 Спасибо сказали: 21 раз(а) Репутация: ![]() ![]() ![]() |
прежде чем работать с сетью надо покурить рфс-ы.
|
|
|
sibmail |
![]()
Сообщение
#6
|
Студент ![]() Группа: Участник Сообщений: 63 Регистрация: 20.3.2009 Пользователь №: 626 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
|
|
|
ViGOur |
![]()
Сообщение
#7
|
![]() Мастер ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модератор Сообщений: 3296 Регистрация: 9.10.2007 Из: Москва Пользователь №: 4 Спасибо сказали: 231 раз(а) Репутация: ![]() ![]() ![]() |
В твоем случае нужно использовать не QDataStream, а QTextStream .
Для лучшего понимания как работать с сетью в Qt посмотри примеры: Fortune Server Example и Fortune Client Example. |
|
|
Litkevich Yuriy |
![]()
Сообщение
#8
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: ![]() ![]() ![]() |
дайте пример хотя бы передачи не двоичных данных а текстовых строк по протоколу TCP посмотри пример Network Chat Exampleтам текстовая строка передается. фрагменты от туда:
|
|
|
sibmail |
![]()
Сообщение
#9
|
Студент ![]() Группа: Участник Сообщений: 63 Регистрация: 20.3.2009 Пользователь №: 626 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
передачу я сделал
QByteArray arrBlock; arrBlock=lineEdit->text().toUtf8(); m_pTcpSocket->write(arrBlock); Снифером посмотрел передается как надо. не подскажите с приемом как быть?? |
|
|
LE0N |
![]()
Сообщение
#10
|
Студент ![]() Группа: Участник Сообщений: 97 Регистрация: 10.3.2009 Из: Беларусь Пользователь №: 604 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
Ну и где в этом, что ты сделал передаётся длина строки?
Цитата ни че курить не надо, я программил на других языках не плохо и работу с сетью также. Да яяя, да яяя, да попой на ежа..... ![]() |
|
|
![]() ![]() ![]() |
![]() |
Текстовая версия | Сейчас: 26.2.2025, 5:38 |