编写客户/服务器程序,客户端Client.java使用DatagramSocket对象将数据包发送到服务器,请求获取服务器端的图像(考生可自选图像文件)。服务器端Server.java将图像文件包装成数据包,并使用DatagramSocket对象将该数据包发送到客户端。首先将服务器端的程序编译通过,并运行起来,等待客户的请求。(本题30分)
下面的代码为什么接收过来的是部分图片,而没有全部接收呢,求高手指导 
服务器端
package Three;import java.io.FileInputStream;
import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.SocketException;
import java.util.Arrays;import javax.swing.ImageIcon;public class A6Server {
private byte[] bytes=new byte[1024];
//private ImageIcon img=new ImageIcon("D:\\Java\\javaCompetition\\1.jpg");  public A6Server(){
try {DatagramSocket ds_server=new DatagramSocket(8000);
DatagramPacket dp_receive=new DatagramPacket(bytes,bytes.length);
DatagramPacket dp_send=new DatagramPacket(bytes,bytes.length);System.out.println("等待请求...");
ds_server.receive(dp_receive);System.out.println("客户的地址:"+dp_receive.getAddress());dp_send.setAddress(dp_receive.getAddress());
dp_send.setPort(dp_receive.getPort());
FileInputStream fis=new FileInputStream("c:\\2.jpg");
byte[] ImgData=new byte[fis.available()];
fis.read(ImgData,0,ImgData.length);
System.out.println("成功读取图片");
dp_send.setData(ImgData);
ds_server.send(dp_send);
System.out.println("成功发送图片");
fis.close();
System.out.println("结束");
} catch (IOException e) {e.printStackTrace();
}
}
  public static void main(String[] args)
  {
  new A6Server();
  
  }
}客户端
package Three;import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
import java.util.Arrays;import javax.swing.*;public class A6Client extends JFrame implements ActionListener{
private byte[] bytes=new byte[1024];
private JButton getImg=new JButton("获取服务器图像");
private ImageIcon img;
private JLabel jl=new JLabel();
private InetAddress address;
private DatagramSocket ds_client;
private DatagramPacket dp_receive;
private DatagramPacket dp_send;
public A6Client()
{
try{
ds_client=new DatagramSocket();
dp_receive=new DatagramPacket(bytes,bytes.length);
address=InetAddress.getByName("127.0.0.1");
dp_send=new DatagramPacket(bytes,bytes.length,address,8000);getImg.addActionListener(this);
this.add(getImg,BorderLayout.NORTH);
this.add(jl,BorderLayout.CENTER);
this.setLocationRelativeTo(null);
this.setSize(300, 300);
this.setVisible(true);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
catch(IOException ie)
{ie.printStackTrace();}
}public void actionPerformed(ActionEvent e)
{
if(e.getSource()==getImg)
{
try{
/*Arrays.fill(bytes, (byte)0);*/
ds_client.send(dp_send);
System.out.println("等待接收图片...");
ds_client.receive(dp_receive);System.out.println(dp_receive.getLength());img=new ImageIcon(dp_receive.getData());
jl.setIcon(img);
System.out.println("成功接收图片");}catch(IOException ie)
{ie.printStackTrace();}
}
}public static void main(String[] args)
{
new A6Client();
}
}