martes, 26 de mayo de 2009

Anuncio de Trabajo.....xD


jueves, 14 de mayo de 2009

Ejemplo Sencillo Java RMI

----------------------------------
Servidor
------------------------------------

import interfaz.interfazRemota;
import java.io.BufferedReader;
import java.io.FileReader;
import java.rmi.RemoteException;
import java.rmi.server.UnicastRemoteObject;
import java.util.StringTokenizer;


public class servidor extends UnicastRemoteObject implements interfazRemota
{
public servidor() throws RemoteException
{

}

public String consultar(String codigo,String ipCliente) throws RemoteException
{
String datos="No encontrado";

try
{ //Direccion de un txt con datos en filas en el siguiente formato:
//12#carlos
FileReader fr = new FileReader("C:/prueba.txt");
BufferedReader entrada = new BufferedReader(fr);
String aux;
boolean band=true;

while((aux=entrada.readLine() ) != null && band)
{
StringTokenizer st = new StringTokenizer(aux,"#");
String var=st.nextToken();
if (var.equals(codigo))
{
band=false;
datos=aux;
System.out.println("datos: "+aux);
}
}

} catch(Exception ex) { System.out.println("error servidor: "+ ex.toString()); }
return datos;
}
}

-------------------------------------------------------------------

import java.rmi.Remote;
import java.rmi.RemoteException;

public interface interfazRemota extends Remote
{ public String consultar(String codigo,String ipCliente) throws RemoteException ;
}

-------------------------------------------------------------------

import java.rmi.RemoteException;
import java.rmi.registry.LocateRegistry;
import java.rmi.registry.Registry;

public class ServidorSinInterfaz {
public static void main( String[] arg ) throws RemoteException
{

int puerto=3232;
Registry registro=null;

try {
registro = LocateRegistry.createRegistry(puerto);
registro.rebind("Servidor",new servidor());
} catch (RemoteException e){System.out.println(e);}

System.out.println("Servidor RMI Iniciado...");

}

}

------------------------------------------------------------------------
------------------------------------------------------------------------
Cliente
------------------------------------------------------------------------

import java.rmi.Remote;
import java.rmi.RemoteException;

public interface interfazRemota extends Remote
{
public String consultar(String codigo,String ipCliente) throws RemoteException ;
}
------------------------------------------------------------------------

import interfaz.interfazRemota;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.InetAddress;
import java.net.UnknownHostException;
import java.rmi.AccessException;
import java.rmi.NotBoundException;
import java.rmi.RemoteException;
import java.rmi.registry.LocateRegistry;
import java.rmi.registry.Registry;
import java.util.Scanner;
import java.util.StringTokenizer;

public class ClienteSinInterfaz {

public static void main(String args[]) throws UnknownHostException, RemoteException, AccessException, NotBoundException, IOException {

String DatosdelServidor;
Registry registro;
int puertoServidor;
interfazRemota rmiServidor;
String ipServidor = null;
String ipCliente = null;

puertoServidor=3232;

try {
ipServidor = "192.168.1.35";
ipCliente = InetAddress.getLocalHost().getHostAddress();
} catch (UnknownHostException ex)
{ ex.printStackTrace(); }

BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
String cod = in.readLine();

try
{
registro=LocateRegistry.getRegistry(ipServidor,puertoServidor);
rmiServidor = (interfazRemota)(registro.lookup("Servidor"));
java.security.AllPermission a =new java.security.AllPermission();
System.setProperty("java.security.policy","rmi.policy");

DatosdelServidor = rmiServidor.consultar(cod,ipCliente);

if(DatosdelServidor.equals("No encontrado"))
{
System.out.println("No encontrado");
System.out.println("Alumno no registrado en el archivo de texto Resultado consulta");
} else {
StringTokenizer st = new StringTokenizer(DatosdelServidor,"#");
System.out.println("codigo: "+st.nextToken());
System.out.println("nombre: "+st.nextToken());

System.out.println("Respuesta del Servidor: " + DatosdelServidor);

}

} catch(RemoteException e) { }
catch(NotBoundException e) { e.printStackTrace(); }

}

}

Ejemplo Sencillo Java Socket

--------------------------------------------
Servidor
--------------------------------------------

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintStream;
import java.net.ServerSocket;
import java.net.Socket;

public class ServidorSocket {

public static void main(String[] args) {

ServerSocket s; //Socket servidor
Socket sc; //Socket cliente
PrintStream p; //Canal de escritura
BufferedReader b; //Canal de Lectura
String mensaje;

try {

s = new ServerSocket(9999);
sc = s.accept();
b = new BufferedReader( new InputStreamReader ( sc.getInputStream() ) );
p = new PrintStream ( sc.getOutputStream() );

while ( true ) {
mensaje = b.readLine();
System.out.println(mensaje);

p.println(mensaje.toUpperCase());

if ( mensaje.equals("salir")) {
break;
}
}

p.close();
b.close();
sc.close();
s.close();
} catch (IOException e) {
System.out.println("No puedo crear el socket");
}
}

}

------------------------------------------------------------------
Cliente
------------------------------------------------------------------

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintStream;
import java.net.Socket;
import java.net.UnknownHostException;

public class ClienteSocket {

public static void main(String[] args) {

Socket s;
PrintStream p;
BufferedReader b;

String host = "localhost";
int port = 9999;
String respuesta;

BufferedReader in = new BufferedReader(new InputStreamReader(System.in));

try {

s = new Socket(host,port);

p = new PrintStream(s.getOutputStream());
b = new BufferedReader ( new InputStreamReader ( s.getInputStream() ) );

while ( true ) {

System.out.print("Mensaje a enviar: ");

p.println( in.readLine() );

respuesta = b.readLine();

System.out.println(respuesta);
if ( respuesta.equals("salir")) {
break;
}
}
p.close();
b.close();
s.close();

} catch (UnknownHostException e) {
System.out.println("No puedo conectarme a " + host + ":" + port);
} catch (IOException e) {
System.out.println("Error de E/S en " + host + ":" + port);
}
}
}