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();
}
}
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();
}
}
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();
}
}