xml - 数据报包到 xml

标签 xml android packet datagram

我正在尝试使用 XMLPullParser 解析 Soap ProbeMatch 消息。我通过 UDP 多播收到这个。我使用以下代码接收它。

byte[] buf = new byte[1900];
DatagramPacket packet = new DatagramPacket(buf, buf.length);

mSocket.receive(packet);

// Damn ugly....
String data = new String(packet.getData())

如果我将 byte[] 转换为 String,Parser 不会吃掉它……有没有更优雅的方法来做到这一点?

当我打印 xml(作为字符串)时,我在字符串末尾得到了未使用的字节:

</s12:Envelope>À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?

最佳答案

首先,我认为您需要按如下方式构造字符串:

String data = new String(packet.getData(), 
                         packet.getOffset(), 
                         packet.getLength());

至于有没有更好的办法。 AIUI 并非如此,尽管可能有第三方 API 可以使填充/清空数据报更容易一些,因为所有字节打包都非常繁琐。

关于xml - 数据报包到 xml,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2849188/

相关文章:

android - 使用 Google Play 服务中的设置 API 启用 "High Accuracy"位置

java - 将 Bufferedreader 的输出打印到 TextView

linux - 下载适用于 Linux 的 Jpcap

c# - 安全标记 TCP/UDP 传输的数据包开始/结束

android - 通过 Wifi 进行 2FA?是否存在?为什么不?

C#读取网站xml文件

java - 将 Xml 布局到我的 Android 应用程序

android - 直接向固定用户发送短信

android - 是否可以在 Android 运行时交换 XML 布局?

c# - 解析 XML 时检查元素是否存在