簡體   English   中英

如何通過套接字將數據作為XML傳遞?

[英]How to pass data as XML via sockets?

我想在用C / C ++編寫的套接字程序之間以XML schema的形式交換數據。 有人可以提供鏈接教程,它們描述套接字程序之間交換XML模式的過程。

我有兩個運行在不同操作系統中的軟件工具,在其中我結合了用c / c ++編寫的套接字程序。 兩者都使用XML ,我想知道是否存在一種簡單的方法來交換XML文檔形式的數據以運行模擬研究。

提前致謝。


問題是如何通過用C / C ++編寫的套接字程序發送xml模式? 這是一個exp:

----- 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 ++ ----
...
//向服務器發送消息
如果(發送(csocket,buffer_snd,BUFSIZE,0)> BUFSIZE)
cout << send()失敗<< endl;
...

預先感謝您的幫助,

為此,您可以考慮將XML解析庫與流解析器一起使用,假設您可以依賴兩端格式正確的文檔-格式良好的XML是自定界的。 libxml2這樣的東西應該合適。

似乎您想要的是在XML Schema中指定協議,然后自動生成C ++類,該類將允許您解析和序列化XML消息。 如果是這樣,那么您可能想看看CodeSynthesis XSD ,它是C ++編譯器的XML模式。 它幾乎完全滿足您的需求。 如果您想要更輕量級的版本,還可以使用XSD / e,它更適合於移動/嵌入式開發。

顯然, gSOAP包含相關的代碼,但是不確定是否正是您要的代碼。

您可以使用expact庫 ,這是一個很好的xml解析器,可以創建xml對象並可以發送

查看HTTP的工作方式-簡單的標頭,指示隨后的有效負載的長度,以及一些額外信息,例如時間戳和類型。 您需要告訴另一邊的是從套接字讀取多少個字節,也許還有文件名。 您可能還希望根據您的應用程序需求向發送者實施確認。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM