当前位置: 代码迷 >> QT开发 >> 相干基于Udp发送XML
  详细解决方案

相干基于Udp发送XML

热度:114   发布时间:2016-04-25 04:39:12.0
有关基于Udp发送XML
在客户端已经写好了xml格式的文档
QDomDocument doc;
  QDomElement root = doc.createElement("root");
  QDomElement element = doc.createElement("element");
  root.appendChild(element);
  QDomElement ip = doc.createElement("ip");
  element.appendChild(ip);
  QDomText ipText = doc.createTextNode(address.toString());
  ip.appendChild(ipText);
  QDomElement name = doc.createElement("name");
  element.appendChild(name);
  QDomText nameText = doc.createTextNode(nameEdit->text());
  name.appendChild(nameText);
  QDomElement password = doc.createElement("password");
  element.appendChild(password);
  QDomText passwordText = doc.createTextNode(passwordEdit->text());
  password.appendChild(passwordText);
  QDomElement Email = doc.createElement("Email");
  element.appendChild(Email);
  QDomText EmailText = doc.createTextNode(EmailEdit->text());
  Email.appendChild(EmailText);
  QString str;
  str.append(root.text());
  clientSocket->writeDatagram(qPrintable(str),1024,QHostAddress(tr("ip address")),port); //向服务器发送
在服务器端接收到了内容,例如客户端发送的内容是IP:192.168.1.1姓名:disk密码:123邮箱:@163.com
服务器接收到得内容是192.168.1.1disk@163.com,那么怎么解析它呢~~?


------解决方案--------------------
最笨的方法是不同的项之间加分隔符,分隔符可以用特殊的或者在你的程序上下文中不会用到的字符,什么|\n啊之类的
------解决方案--------------------
QDomNode + QDomElement进行解析。
------解决方案--------------------
把 str.append(root.text()) 改成 str = doc.toString();
  相关解决方案