您好我有一个Android应用程序,它将UDP消息发送到我在win7 PC上运行的应用程序。有些日子,消息一直没有问题,其他日子没有消息显示。我没有理由这样做。我有几天没有在我的电脑上获得任何UDP消息,然后我无缘无故地确定UDP消息刚刚开始显示。可悲的是,它只是停止进入的另一种方式。我有一个来自同事的第二个UDP服务器应用程序,它在他的计算机上运行良好,但在我的计算机上运行时也遇到同样的问题。如果它是防火墙问题,我会认为消息永远不会发给我。这看起来很随意。重新启动设备无法解决问题。有什么想法导致我不一致的沟通?我的UDP服务器应用程序是用C#编写的。我没有看到Wire Shark跟踪中丢失的UDP消息。
以下是Android中用于发送UDP消息的代码。
public void SendPLMMessage(InetAddress DistIPAddress, int ServerPort, String msg) {
int len = msg.length();
byte[] data = new byte[len / 2];
try {
for (int i = 0; i < len; i += 2) {
data[i / 2] = (byte) ((Character.digit(msg.charAt(i), 16) << 4) + Character.digit(msg.charAt(i + 1), 16));
}
} catch (Exception ee) {
WriteFile("exception in SendPLMMessage()\n");
}
try {
DatagramSocket s = new DatagramSocket();
DatagramPacket pkt = new DatagramPacket(data, data.length, DistIPAddress, ServerPort);
s.send(pkt);
s.close();
WriteFile(msg + "\n");
} catch (Exception e) {
WriteFile("Datagram exception\n");
}
}