Russian Qt Forum

Qt => Работа с сетью => Тема начата: sibmail от Апрель 01, 2009, 06:37



Название: Надо передать строку по сети другому приложению (не Qt) в строковом формате
Отправлено: sibmail от Апрель 01, 2009, 06:37
Надо передать строку по сети другому приложению (не Qt), чтобы на другом конце получили строковые данные (не бинарные)


Название: Re: Надо передать строку по сети другому приложению (не Qt) в строковом формате
Отправлено: sibmail от Апрель 01, 2009, 06:38
Надо передать строку по сети другому приложению (не Qt), чтобы на другом конце получили строковые данные (не бинарные)

подскажите с реализацией ))


Название: Re: Надо передать строку по сети другому приложению (не Qt) в строковом формате
Отправлено: Rcus от Апрель 01, 2009, 07:06
Что есть строковые данные и как они могут быть не бинарными (ну передачу почтовыми голубями я не рассматриваю)? Я не спец в сетевых протоколах, но сколько я видел обычно строки передают в utf8, передавая сначала длину строку (2-4 байта)


Название: Re: Надо передать строку по сети другому приложению (не Qt) в строковом формате
Отправлено: sibmail от Апрель 01, 2009, 12:12
передачу я сделал
QByteArray  arrBlock;
arrBlock=lineEdit->text().toUtf8();
m_pTcpSocket->write(arrBlock);

не подскажите с приемом как быть??


Название: Re: Надо передать строку по сети другому приложению (не Qt) в строковом формате
Отправлено: Rcus от Апрель 01, 2009, 13:18
Ненене :) TCP/IP обеспечивает абстракцию потока данных. То есть отвечает за то что данные будут доставлены и гарантирует порядок их получения.
Ответственность за интерпритацию потока ложится уже на реализацию протокола уровня приложения, бывает что в одном tcp пакете передаются несколько пакетов уровня приложения, или наоборот.
Обычной практикой является заголовок установленной формы, в котором указан тип пакета и его длина.
В общем мог бы посоветовать почитать каких-нибудь книг по сетевым протоколам, возможно RFC и залить это чтением спеков по долгоживущим протоколам (например интересны мутации протокола ed2k)


Название: Re: Надо передать строку по сети другому приложению (не Qt) в строковом формате
Отправлено: whirlwind от Апрель 01, 2009, 21:45
передачу я сделал
QByteArray  arrBlock;
arrBlock=lineEdit->text().toUtf8();
m_pTcpSocket->write(arrBlock);

не подскажите с приемом как быть??
собственно, также... QString QString::fromUtf8 ( const char * str, int size = -1 )
а const char* можно из того же QByteArray получить, по-моему...