powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / С++ thrift вопрос
4 сообщений из 4, страница 1 из 1
С++ thrift вопрос
    #38381557
Winnipuh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
есть мое с++ клиентское приложение и Java сервер, пытаюсь коннектиться и передавать ему данные.
Вопрос вот такой:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
boost::shared_ptr<TSocket> socket(new TSocket(hostMS, portMS));
	boost::shared_ptr<TFramedTransport> transport(new TFramedTransport(socket));
	boost::shared_ptr<TBinaryProtocol> protocol(new TBinaryProtocol(transport));

transport->open();
protocol->writeI32(0xCA552DFA);
transport->writeEnd();
transport->flush();




на сервер приходит сообщение, у них там стоит такой код

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
// int nMagic = in.readInt(); <----------------------здесь мое лишнее чтение
int ch1 = in.read();
                int ch2 = in.read();
                int ch3 = in.read();
                int ch4 = in.read();
                if ((ch1 | ch2 | ch3 | ch4) < 0)
                    throw new EOFException();
               // return ((ch1 << 24) + (ch2 << 16) + (ch3 << 8) + (ch4 << 0));

             nMagic = ((ch1 << 24) + (ch2 << 16) + (ch3 << 8) + (ch4 << 0));



Вопрос: я получаю то самое челое число только, если добавлю вот то закрытое чтение целого, в нем приходит 4, т.е. длина в байтах того, что дальше
Получается, что нужно передавать БЕЗ предварительно идущего целого, содержащего длину буфера.
Как это в thrifte сделать?
Не хотелось бы переходить на низкий уровень и по-новой программировать передачу через сокеты, наверняка уже есть такое.
...
Рейтинг: 0 / 0
С++ thrift вопрос
    #38383190
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Winnipuh,

Если мне не изменяет память, то в java int не 4, а 8 байт. Так что надо уточнить этот вопрос, сколько байт там читают.
...
Рейтинг: 0 / 0
С++ thrift вопрос
    #38383230
Фотография Usman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
WinnipuhНе хотелось бы переходить на низкий уровень и по-новой программировать передачу через сокеты, наверняка уже есть такое.Есть Thrift'овый TSocket . Я думаю, что это и есть та самая надстройка над низкоуровневым сокетом.
И подозреваю, что его нужно использовать на клиенте, когда на сервере отсутствует Thrift.
...
Рейтинг: 0 / 0
С++ thrift вопрос
    #38383371
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZivЕсли мне не изменяет память, то в java int не 4, а 8 байт.
Изменяет. 4.
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / С++ thrift вопрос
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]