Java 网络编程 之 UDP 文件传输

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

你可能感兴趣的:(Java,编程基础)