Código:
at java.io.FileOutputStream.open(Native Method)
at java.io.FileOutputStream.<init>(FileOutputStream.java:209)
at java.io.FileOutputStream.<init>(FileOutputStream.java:99)
clase Cliente:
Código
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.PrintWriter; import java.net.Socket; public class Cliente { if(args.length != 2){ } try{ System.out.println("El cliente se ha conectado con exito al servidor " + hostServidor + ":" + puertoServidor); e.printStackTrace(); } } //el inputstreamreader coge un chorro de bytes y lo transforma a characteres //el bufferedReder pasa de los characteres a lineas,tiene metodos readline() que lee lineas por ejemplo // lo mismo es que si hiciera: BufferedReader in = new BufferedReader(new InputStreamReader(System.in)); boolean repetir; char op = 0; repetir=true; while(repetir){ //si quisiera (pero es ilogico ya que el metodo que voy a llamar esta en la misma clase), //me podria crear un objeto MenuPersona menuPersona = new MenuPersona(); fuera del metodo //para que no me lo pise, y luego llamarlo en lugar de Menu(); llamar a MenuPersona.Menu() Menup(); op = in.readLine().charAt(0); switch(op){ case '1' : repetir=true; break; case '2': VerFicheros vf = new VerFicheros(); vf.VerFichero(); repetir=true; break; case '3': EnviarFichero ef = new EnviarFichero(); ef.EscribirFichero(sock); ef.EnvioFicherosAServidor(socket); repetir=true; break; case '4': repetir=true; break; case '5': repetir = false; return; } } } private static void Menup() { System.out.println("||================================== MENU PRINCIPAL ==================================||"); System.out.println("|| ---------------------- ¡¡¡¡Hola!!! Elige una opcion por favor ---------------------||"); System.out.println("|| 5.-‘q’: salir cerrando la conexión con el servidor y terminando el proceso cliente||"); System.out.println("||====================================================================================||"); System.out.println("||====================================================================================||"); } }
Clase Servidor:
Código
import java.io.IOException; import java.net.ServerSocket; import java.net.Socket; public class Servidor{ private final static int puerto = 0; try{ while(true){ Procesador p = new Procesador(conn); p.start(); } e.printStackTrace(); } } }
Clase Procesador(para los hilos):
Código
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.PrintWriter; import java.net.Socket; import java.util.ArrayList; this.conn = conn; } public synchronized void run(){ System.out.println("La direccion IP del cliente es: " + conn.getLocalAddress() + " y su puerto es " + conn.getPort()); Cliente cliente = new Cliente(); try { cliente.menuPrincipal(conn); // TODO Auto-generated catch block e.printStackTrace(); // TODO Auto-generated catch block e.printStackTrace(); } } }
Clase VerFicheros(para ver listado de ficheros):
Código
import java.io.File; public class VerFicheros { // public void VerFichero() { /**Lo primero que haremos será obtener una referencia al directorio que queremos listar. *Utilizaremos, en este caso, la clase File para almacenar la referencia.*/ /**Uno de los métodos de la clase File es .list(). * Mediante este método recuperaremos los ficheros que componen el directorio especificado. * Lo que nos devuelve es un array de cadenas.*/ if (ficheros == null) else { for (int x=0;x<ficheros.length;x++){ } } } }
Clase EnviarFicheros(la uso para enviar):
Código
import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.PrintStream; import java.net.ServerSocket; import java.net.Socket; import java.util.Scanner; public class EnviarFichero { try{ //String path = "C:\\hola.txt"; byte[] buffer = new byte[1024]; int len; while((len=origen.read(buffer))>0){ envio.write(buffer,0,len); } e.printStackTrace(); } } try{ //String path = "C:\\Java"; byte[] buffer = new byte[1024]; int len; while((len=llegada.read(buffer))>0){ destino.write(buffer,0,len); } e.printStackTrace(); } } }
Pongo entre \\ como pongo yo el path si esta mal como lo pongo corregirme porfavor, les agradezco que testen mi codigo y si le salta algun error de que meten mal el directorio al darle a la opcion de enviar, la opcion 3