通过TCP/IP套接字的XML消息

Sac*_*iya 1 c xml sockets connection parsing

我正在使用C并且想要知道,就通过套接字连接进行通信而言,XML消息是否优于文本消息?

  1. 有没有其他好的选择可用于XML?
  2. 哪个是可用于在C中解析XML的最佳解析器(或解析选项)?
  3. 是否有C附带的标准库并有助于解析XML消息?

Vie*_*iet 5

  1. 您可以自行设计协议.您可以使用文本或二进制通信.无论使用何种格式,您都可以决定如何序列化/反序列化和解释数据.如果使用XML,则可以利用XMLRPC或SOAP.您也可以使用JSONRPC.上次在我的项目中,我以一种非常简单而有效的方式使用二进制文件:第一次识别要调用的方法/函数.接下来的2个字节用于通知数据长度(最多64K - 1个字节),其余为数据.注意大/小Endianess.

  2. 这是非常主观的.您可以使用验证或非验证解析器.TinyXML是轻量级的.您可以查看MiniXML和Expat.libxml2更胖.

  3. 到目前为止,XML解析不在C或C++的标准库中.您可以使用上述库.

祝好运!

编辑:

顺便说一下,如果你想使用二进制格式来交换数据,只需使用以下3中的任何一种:

  1. http://tpl.sourceforge.net/ - C序列化库.

  2. http://www.s11n.net/c11n/ - 一个功能强大且复杂的C序列化库.

  3. Siseria - http://sourceforge.net/projects/siseria/,纯粹是在C.我为嵌入式系统项目写的.它运行没有任何依赖,非常快!与其他2相比,mine非常简单,根本不使用堆和动态内存.一切都在堆栈!