Transferir un archivo

pablo
29 de Agosto del 2004
un saludo a todos

tengo la sgte duda:

Estoy tratando hacer una aplicacion cliente/servidor.
¿Cómo puedo hacer que el cliente, después de conectarse con el servidor, pueda copiar un archivo que reside en el servidor y transferirlo a la máquina donde esta corriendo el cliente, haciendo uso de los Java Sockets?

Muchas gracias a quien pueda ayudarme a solucionar mi duda.

Kurz
29 de Agosto del 2004
esta es la parte del servidor:

dos=new DataOutputStream(socket.getOutputStream());
File inputFile = new File(path);
FileInputStream in = new FileInputStream(inputFile);
tamaño=in.available();
dos.writeBytes(tamaño);
dos.flush();
br.readLine();
byte [] buffer=new byte[tamaño];
in.read(buffer);
dos.write(buffer);
in.close();

y esta es la parte del cliente:

linea=br.readLine();
StringTokenizer str=new StringTokenizer(linea," ");
tam = str.nextToken();
File f=new File(path);
FileOutputStream file=new FileOutputStream (f);
int tamaño=Integer.parseInt(tam);
byte [] buffer=new byte [tamaño];
DataInputStream in =new DataInputStream(socket.getInputStream());

dos.writeBytes("preparado para recibir fichero \r\n");


for(int i=0;i<tamaño;i++){ //BUCLE PARA IR LEYENDO BYTE A BYTE

buffer[i]=in.readByte();
}
file.write(buffer); //escribe en el fichero el array
file.close();