Foro de elhacker.net

Programación => Java => Mensaje iniciado por: Saok Dagon en 22 Abril 2008, 16:08 pm



Título: Enviar archivo
Publicado por: Saok Dagon en 22 Abril 2008, 16:08 pm

Tengo la sigiente duda, estoy trantando de hacer un sistema que mande un archivo atraves de java por internet a otra pc. Entonces tengo la sigiente duda que no se como tomarla, mi idea era que, el cliente, mandara una "contraseña" de conexion al servidor para que este permita la conexion y aceptar el archivo, pero que si esa contraseña es correcta o no mandada, rechaze la conexion ( algo asi como un firewall monopuerto ). Es por el tema de la seguridad y eso.


Ciente
Citar
import java.net.Socket;
import java.io.InputStreamReader;
public class Cliente {
private String ip = "IP";
private int puerto = 16000;
private String nomArchivo = "archivo_nombre";
public Cliente(){
Socket socket = null;
java.io.FileInputStream in = null;
java.io.FileOutputStream pt = null;
try {
socket = new Socket(ip,puerto);
pt = (java.io.FileOutputStream)socket.getOutputStream() ;//
in = new java.io.FileInputStream(new java.io.File(nomArchivo));
} catch(Exception e) {
System.out.println("No se pudo crear la conexión\n"+e);
}
try {
socket.sendUrgentData(100);
byte[] buf = new byte[1024];
int len;
while ((len = in.read(buf)) > 0 ){
pt.write(buf, 0, len);
}
pt.close();
in.close();
socket.close();
} catch(Exception e) {
System.out.println("Error al enviar mensaje\n"+e);
}
}
public static void main(String a[]) {
new Cliente();
}
}

Servidor

Citar
import java.net.ServerSocket;
import java.net.Socket;
public class Servidor implements Runnable {
ServerSocket server;
public Servidor() {
try {

server=new ServerSocket(16000);
System.out.println("Servidor corriendo...");
} catch(Exception e) {
System.out.println("Error al correr el servidor\n"+e);
System.exit(1);
}
}

public void run() {
Socket client=null;
while (true) {
if (server==null)
return;
try {
client=server.accept();
System.out.println("Llegó un cliente!");
} catch(java.io.IOException e) {
System.err.println("No se pudo establecer conexión " + e.getMessage());
}
try {
java.io.InputStream in = client.getInputStream();
//CREAMOS LA INSTANCIA PARA ESCRIBIR EL ARCHIVO EN DISCO
java.io.FileOutputStream out = new java.io.FileOutputStream(new java.io.File("C:\\llego.msi"));
byte[] buf = new byte[1024];
int len;
while ((len = in.read(buf)) > 0) {
out.write(buf, 0, len);
}
in.close();
out.close();
} catch(java.io.IOException e) {
System.out.println("Error: " + e);
}
}
}

public static void main(String a[]) {
Servidor servidor = new Servidor();
// Ponemos a correr nuestro hilo servidor
new Thread(servidor).start();
}
}


Título: Re: Enviar archivo
Publicado por: Sk9ITk5Z en 24 Abril 2008, 00:29 am
pero cual es tu duda....?


Título: Re: Enviar archivo
Publicado por: Saok Dagon en 24 Abril 2008, 15:23 pm


Citar
Entonces tengo la sigiente duda que no se como tomarla, mi idea era que, el cliente, mandara una "contraseña" de conexion al servidor para que este permita la conexion y aceptar el archivo, pero que si esa contraseña es correcta o no mandada, rechaze la conexion ( algo asi como un firewall monopuerto )

El codigo que deje, es el codigo del cliente - servidor

saludos