服务器端 package com.udp;import java.io.File;import java.io.FileOutputStream;import java.io.IOException;import java.io.OutputStream;import java.net.DatagramPacket;import java.net.DatagramSocket;import java.net.SocketException;public class UDPTextFileServer{ public static void main(String[] args) { OutputStream os=null; DatagramSocket ds=null; try { ds=new DatagramSocket(9001); System.out.println("在9001端口监听..."); byte[] b=new byte[1024]; DatagramPacket dp=new DatagramPacket(b,0,b.length); ds.receive(dp); byte[] data=dp.getData(); os=new FileOutputStream(new File("text.txt")); os.write(data, 0, dp.getLength()); System.out.println("文件接收成功"); } catch (SocketException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } finally { try { os.close(); ds.close(); } catch (IOException e) { e.printStackTrace(); } } }}客户端 package com.udp;import java.io.File;import java.io.FileInputStream;import java.io.IOException;import java.io.InputStream;import java.net.DatagramPacket;import java.net.DatagramSocket;import java.net.InetAddress;import java.net.SocketException;public class UDPTextFileClient{ public static void main(String[] args) { DatagramSocket ds=null; InputStream is=null; try { ds=new DatagramSocket(9000); System.out.println("客户端在 9000 监听"); is=new FileInputStream(new File("text.txt")); byte[] b=new byte[is.available()]; is.read(b); DatagramPacket dp=new DatagramPacket(b,0,b.length); dp.setPort(9001); dp.setAddress(InetAddress.getByName("192.168.2.102")); ds.send(dp); System.out.println("文件发送成功"); } catch (SocketException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } finally { try { is.close(); ds.close(); } catch (IOException e) { e.printStackTrace(); } } }}