java udp发送接收DatagramPacket过程为什么传汉字会丢失一部分
import java.net.*;
import java.io.*;
public class UDPClient
{
public static void main(String[] args) throws Exception{
DatagramSocket ds=new DatagramSocket(6000);
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
String line=null;
while((line=br.readLine())!=null){
DatagramPacket dp=new DatagramPacket(line.getBytes(),0,line.length(),InetAddress.getByName("localhost"),8000);
ds.send(dp);
}
br.close();
ds.close();
}
}
import java.net.*;
import java.io.*;
public class UDPServer
{
public static void main(String[] args) throws Exception{
DatagramSocket ds=new DatagramSocket(8000);
byte[] buff=new byte[1024];
DatagramPacket dp=new DatagramPacket(buff,1024);
while(true){
ds.receive(dp);
String str=new String(dp.getData(),0,dp.getLength());
System.out.println(str);
}
}
}
这里简单举了一个例子,可能有漏洞,主要问题是当发送中文数据的时候,例如“你好”,对端只能接收到一半的中文,例如“你”,发送英文数据全部可以接收,为什么会丢失后面一半的汉字?我考虑可能是编码问题?可终究还是不知道怎么回事,
求大神帮忙~~