Datagramsocket仅发送第N-1个数据包

时间:2015-02-21 17:08:34

标签: java android datagram

在我的Android应用程序中,我使用DatagramSockets将消息发送到服务器,如下所示:

InetAddress address = InetAddress.getByName(host);

byte[] byteMessage = (" " + message + "\r\n##!!##").getBytes();

DatagramPacket packet = new DatagramPacket(byteMessage, byteMessage.length, address, port);

DatagramSocket socket = new DatagramSocket();
try
{
        socket.send(packet);
}
finally
{
        socket.close();
}

但是只发送每个第N-1个数据包。 这意味着如果我发送1个数据包,则不会发送任如果我发送第二个,第一个发送。如果我发送第三个,第二个发送等等。


修改 所以在第一次评论后我a)摆脱了无用的throw语句b)尝试在发送后没有关闭套接字。它没有帮助。 以此作为澄清的示例:以下代码完美运行,我收到包服务器端。但它显然不是一个漂亮的解决方案......

InetAddress address = InetAddress.getByName(host);

byte[] byteMessage = (" " + message + "\r\n##!!##").getBytes();

DatagramPacket packet = new DatagramPacket(byteMessage, byteMessage.length, address, port);

DatagramSocket socket = new DatagramSocket();

try
{
    socket.send(packet);
    String emptyMessage = " ";
    socket.send(new DatagramPacket(emptyMessage.getBytes(), emptyMessage.getBytes().length, address, port));
}
finally
{
    socket.close();
}

之后我只是发送第二条“空”消息。我首先尝试发送一个空字节数组,但工作。

0 个答案:

没有答案