服务器端:import java.awt.image.BufferedImage;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.net.DatagramPacket;
import java.net.DatagramSocket;import javax.imageio.ImageIO;
import javax.imageio.stream.FileImageInputStream;public class UDpserver {
   public static void main(String[] args) throws Exception {
DatagramSocket socket = new DatagramSocket(5000);
byte[] b = new byte[100];
DatagramPacket receivePacket = new DatagramPacket(b,b.length);
socket.receive(receivePacket);
if(0!=receivePacket.getLength()){  //检测到有信息发过来就向客户端发送一张图片
  File file = new File("E:/123.png");
  FileImageInputStream fiis = 
  new FileImageInputStream(file);
  BufferedImage image=ImageIO.read(fiis);//获取图像
  ByteArrayOutputStream buf= 
  new ByteArrayOutputStream((int)file.length());
  ImageIO.write(image,"jpg",buf);
  byte[] b1 =buf.toByteArray();
  DatagramPacket sendPacket =new DatagramPacket(b1,(int)file.length(),
  receivePacket.getAddress(),receivePacket.getPort());
  socket.send(sendPacket);
  socket.close();
   }
     }
}服务端import java.awt.BorderLayout;
import java.awt.Canvas;
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.image.BufferedImage;
import java.io.ByteArrayInputStream;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;import javax.imageio.ImageIO;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;public class Udpclient  implements ActionListener{
JButton btn;
JPanel jp;
MyCanvas1 cav = new MyCanvas1();
BufferedImage image;

    public Udpclient(){
     JFrame jf= new JFrame("I am a client");
     btn = new JButton("获取图像");
     jp= new JPanel();
     jf.add(btn,BorderLayout.NORTH);
     btn.setSize(250,30);
     btn.addActionListener(this);
     cav.setPreferredSize(new Dimension(250,250));
     jp.add(cav);
     jf.add(jp,BorderLayout.SOUTH);
     jf.pack();
     jf.setVisible(true);
    
    }
    class MyCanvas1 extends Canvas{
     public void paint(Graphics g){
     g.drawImage(image,0,0,this);
     }
    }
    public void actionPerformed(ActionEvent e){
      
try{
    DatagramSocket socket = new DatagramSocket();
    String str="请求图片";
    DatagramPacket sendPacket = new DatagramPacket
     (str.getBytes(),str.length(),
     InetAddress.getByName("localhost"),5000);
    socket.send(sendPacket);
byte[] image1 = new byte[5000];
DatagramPacket receivePacket =new DatagramPacket(image1,5000);
socket.receive(receivePacket);
ByteArrayInputStream bais = new ByteArrayInputStream
(image1,0,receivePacket.getLength());
       BufferedImage bi = ImageIO.read(bais);
       image = bi;
       cav.repaint();
    socket.receive(receivePacket);
    socket.close();
    
    }catch(Exception en){
     en.printStackTrace();
    }
    }
    public static void main(String[] args) {
new Udpclient();
}
}貌似 没传送过来就关闭了