Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/319.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 服务器未正确读取发送的UDP数据包_Java_Udp - Fatal编程技术网

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

Java 服务器未正确读取发送的UDP数据包,java,udp,Java,Udp,我正在从客户端向服务器发送两个数据包。我遇到的问题是,服务器上读取的数据使两个字符串相对于发送的最长字符串的长度相同。例如: 如果字符串1为:1234 字符串2是:abcdefghi 服务器将读取 1234efghi abcdefghi 它应该只是显示 1234 abcdefghi 我的代码是: byte[] toSendUser = new byte[1024]; byte[] toSendPass = new byte[1024]; String name = "1234"; Stri

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

如果字符串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);

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

Java中的Datagrampackes
一直缩小到目前为止收到的最小数据包的大小。您必须根据
receive(),
创建一个新的
receive(),或者至少每次在下一个
receive()之前重置长度。

关于Linux和/或Unix的问题在哪里?向我们展示服务器代码。