发送的UDP数据包未被服务器正确读取

时间:2014-03-30 21:04:55

标签: java udp

我正在从客户端向服务器发送两个数据包。我遇到的问题是服务器上读取的数据使得两个字符串的长度与发送的最长字符串相同。例如:

如果字符串1是:1234
和字符串2是:abcdefghi

服务器将读取

1234efghi
abcdefghi

它应该只显示

1234
abcdefghi

我的代码是:

byte[] toSendUser = new byte[1024];
byte[] toSendPass = new byte[1024];

String name = "1234";
String password = "abcdefghi"; 

    toSendUser = name.getBytes();
        toSendPass = password.getBytes();
        DatagramPacket packSend = new DatagramPacket (toSendUser, toSendUser.length, ipConn, 9876); 
        connection.send(packSend);

        DatagramPacket packSendtwo = new DatagramPacket (toSendPass, toSendPass.length, ipConn, 9876); 
        connection.send(packSendtwo);

可能是服务器问题还是我的客户端代码错误?

1 个答案:

答案 0 :(得分:1)

Java中的

DatagramPackets不断缩小到目前为止收到的最小值。您必须每receive(),创建一个新的,或者至少在下一个receive().之前重置长度

相关问题