我正在从客户端向服务器发送两个数据包。我遇到的问题是服务器上读取的数据使得两个字符串的长度与发送的最长字符串相同。例如:
如果字符串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);
可能是服务器问题还是我的客户端代码错误?
答案 0 :(得分:1)
DatagramPackets
不断缩小到目前为止收到的最小值。您必须每receive(),
创建一个新的,或者至少在下一个receive().
之前重置长度