Provate a dare un'occhiata a questo, l'avevo fatto tempo fa per provare.

I dati provengono da un file di testo ma potete usare qualunque altra sorgente (e destinazione)

Il client...
codice:
import java.net.*;
import java.io.*;

public class Client 
{
    
    public static void main(String[] args) throws IOException
    {
        InetAddress addr = InetAddress.getByName(null);
        Socket socket = new Socket (addr, Server.PORT);
        try
        {
            BufferedReader in = new BufferedReader(new FileReader("text.txt"));
            PrintWriter out = new PrintWriter(new BufferedWriter(new OutputStreamWriter(socket.getOutputStream())), true);            
            while (true)
            {
                String tmp = in.readLine();
                if (tmp == null)
                    break;
                else
                    out.println(tmp);
            }
        }
        finally
        {
            socket.close();
        }
        
    }
    
}
e il server...

codice:
import java.io.*;import java.net.*;
public class Server
{
    public static final int PORT = 2000;
    public static void main(String[] args) throws IOException
    {
        ServerSocket ss = new ServerSocket(PORT);
        try
        {
            Socket socket = ss.accept();
            try
            {
                PrintWriter out = new PrintWriter(new BufferedWriter(new FileWriter("text2.txt")), true);
                BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));

                while (true)
                {
                    String tmp = in.readLine();
                    if (tmp == null)
                        break;
                    else
                        out.println(tmp);
                }
            }
            finally
            {
                socket.close();
            }
        }
        finally
        {
            ss.close();
        }
    }
}

import java.net.*;import java.io.*;
public class Client
{
    public static void main(String[] args) throws IOException
    {
        InetAddress addr = InetAddress.getByName(null);
        Socket socket = new Socket (addr, Server.PORT);
        try
        {
            BufferedReader in = new BufferedReader(new FileReader("text.txt"));
            PrintWriter out = new PrintWriter(new BufferedWriter(new OutputStreamWriter(socket.getOutputStream())), true);
            while (true)
            {
                String tmp = in.readLine();
                if (tmp == null)
                    break;
                else
                    out.println(tmp);
            }
        }
        finally
        {
            socket.close();
        }
    }
}