Как передать данные в виде XML через сокеты? - PullRequest
0 голосов
/ 18 декабря 2009

Я хочу обмениваться данными в виде XML schema между программами сокетов, написанными на C / C ++. Может ли кто-нибудь предоставить учебники по ссылкам, которые описывают процесс обмена XML-схемами между программами сокетов.

У меня есть два программных инструмента, работающих в разных операционных системах, в которых я работал с сокетными программами, написанными на c / c ++. Поскольку оба работают с XML, я хочу знать, существует ли простой способ обмена данными в форме документов XML для проведения исследований моделирования.

Заранее спасибо.


Вопрос в том, как отправить XML-схему через программу-сокет, написанную на C / C ++? вот опыт:

----- xml ---
...
<xs:element name="zone">
<xs:complexType>
<xs:sequence>
<xs:element name="Var_name" type="xs:string"/>
<xs:element name="var_value" type="xs:decimal"/>
</xs:sequence>
</xs:complexType>
</xs:element>

------ C / C ++ ----
...
// отправить сообщение на сервер
if (send (csocket, buffer_snd, BUFSIZE, 0)> BUFSIZE)
cout << отправить () не удалось << endl; <br> ...

Заранее благодарю за помощь,

Ответы [ 5 ]

2 голосов
/ 21 декабря 2009

Похоже, что вы хотите указать свой протокол в XML-схеме, а затем автоматически генерировать классы C ++, которые позволят вам анализировать и сериализовать сообщения XML. Если это так, то вы можете взглянуть на CodeSynthesis XSD , который является компилятором схемы XML для C ++. Это в значительной степени именно то, что вы ищете. Если вам нужна более легкая версия, есть также XSD / e, которая больше ориентирована на разработку для мобильных устройств / встраиваемых систем.

2 голосов
/ 19 декабря 2009

Для этого вы можете рассмотреть возможность использования библиотеки синтаксического анализа XML с анализатором потоковой передачи, предполагая, что вы можете полагаться на то, что документы правильно сформированы с обеих сторон - правильно сформированный XML саморазграничивается. Подойдет что-то вроде libxml2 .

1 голос
/ 18 декабря 2009

Очевидно, что gSOAP содержит соответствующий код, хотя не уверен, что это то, что вы ищете.

0 голосов
/ 11 февраля 2013

вы можете использовать точную библиотеку , это хороший анализатор xml, который может создавать объект xml и может быть отправлен

0 голосов
/ 18 декабря 2009

Посмотрите, как это делает HTTP - простой заголовок, который указывает длину полезной нагрузки, которая следует, плюс некоторые дополнительные функции, такие как метки времени и типы. Все, что вам нужно сообщить другой стороне, это сколько байтов нужно прочитать из сокета и, возможно, имя файла. Вы также можете реализовать подтверждение отправителю в зависимости от потребностей вашего приложения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...