http://www.verejava.com/?id=16994922158226
服务器端
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();
}
}
}
}
http://www.verejava.com/?id=16994922158226