客户端

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileReader;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.net.InetAddress;
import java.net.Socket;
import java.net.SocketException;
import java.net.UnknownHostException;

/**
 * 
 * @author WangShuang
 *
 */
public class ClientDemo {
	public static void main(String[] args) throws SocketException {
		Socket socket = null;
		BufferedReader br =null;
		try {
			InetAddress byName = InetAddress.getByName("192.168.1.102");
			
			//创建客户端socket服务,指定目的主机和端口
			 socket = new Socket(byName,9999);
			 
			//为了发送数据,应该获取socket流中的输出流,将数据写到该流中,通过网络发送给服务端
			BufferedWriter bwsocket = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream()));
			//将硬盘中的文件读取到流中
			br = new BufferedReader(new FileReader("c:\\文件上传.txt"));
			
			String  readLine = null;
			while((readLine=br.readLine())!=null){
				bwsocket.write(readLine);
				bwsocket.newLine();
				bwsocket.flush();
			}
		} catch (UnknownHostException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}finally {
			try {
				br.close();
				//关闭客户端资源
				socket.close();
			} catch (IOException e) {
				e.printStackTrace();
			}
		}
	}

}

服务端

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.ServerSocket;
import java.net.Socket;

public class ServiceDemo {
	public static void main(String[] args) {
		//创建服务端socket服务
		ServerSocket serverSocket=null;
		Socket socket =null;
		BufferedWriter bw =null;
		try {
			serverSocket = new ServerSocket(9999);
			//获取客户端socket对象
			socket = serverSocket.accept();
			
			BufferedReader brsocket = new BufferedReader(new InputStreamReader(socket.getInputStream()));
			
			bw = new BufferedWriter(new FileWriter("d:\\文件上传.txt"));
			String readLine=null;
			while ((readLine=brsocket.readLine())!=null) {
				bw.write(readLine);
			}
			
		} catch (IOException e) {
			e.printStackTrace();
		}finally {
			try {
				bw.close();
				socket.close();
			} catch (IOException e) {
				e.printStackTrace();
			}
		}
	}
}