InicioOfftopicJava RMI (Chat Parte 2 — Servidor)

Ahora pasaremos a la segunda parte de la seria de tutoriales de RMI sobre hacer un Chat en java. En esta parte veremos como se hace la interfaz del servidor y como se implementa en el servidor. Después de este tutorial tal vez haga un pequeño articulo acerca de interfaces antes de seguir con la 3ra parte para que los que no vayan entendiendo puedan seguir el ritmo.

Bueno para ver el tutorial sigan leyendo...

Interfaz del servidor
La interfaz solo llevara los metodos que se desarrollaran en el servidor. Aqui les dejo el codigo comentado:

import java.rmi.*; //importamos la libreria RMI de java
public interface Chat extends Remote{ //heredamos Remote a la interface chat
//Metodos que tendra el servidor
public int registerClient(ClientRemote cr)throws RemoteException; //agregara clientes
public void removeClient(int c)throws RemoteException; //removera clientes
}


La interface es facil, no hay que explicar mucho, como les digo si no saben sobre interfaces en java el proximo tutorial hablara de ello antes de seguir avanzando mas en esta serie de tutoriales.

Ahora pasamos al código del server se los dejo aqui:

//TODOS LOS IMPORTS QUE SE USARAN
import java.net.*;
import java.io.*;
import java.util.*;
import java.rmi.*;
import java.rmi.server.*;
import java.rmi.registry.LocateRegistry;
import java.rmi.registry.Registry;
import java.rmi.server.UnicastRemoteObject;

public class ChatServer extends java.rmi.server.UnicastRemoteObject implements Remote, Chat
{ //Ven en implements que sale "Chat" esa es nuestra interface

private static ChatServer rmi; //hacemos un objeto de nuestro servidor
private ClientRemote cr; //Sera el objeto de la interface del cliente
Vector<ClientRemote> v = new Vector<ClientRemote>(); // un vector para saber que clientes estan conectados

public ChatServer() throws java.rmi.RemoteException
{
super(); //super manda a llamar a la clase objeto que es de donde derivan todas.
}

public static void main(String[] args)
{
//ponemos parametros de seguridad para que podamos llamar a metodos remotamente
System.setProperty("java.security.policy","file:/E:/RMI/CHATRMI/java.policy"; //se hara un tutorial sobre esto
System.setSecurityManager(new SecurityManager());
try
{
rmi= new ChatServer(); //instanciamos nuestro servidor para llamar al super();
System.out.println("Registy is created....";
Naming.rebind("server", rmi); //le llamamos "server" a nuestro servidor para que podamos usarlo ajo ese nombre
System.out.println("Binding has complete...";
System.out.println("Server is waiting for a client request...";
}catch(java.rmi.UnknownHostException uhe)
{
System.out.println("ERROR";
}catch(RemoteException re)
{
System.out.println("ERROR "+re);
}catch(MalformedURLException mURLe)
{
System.out.println("ERROR "+ mURLe);
}
}

public int registerClient(ClientRemote cr) throws RemoteException //aqui ya ponemos que hara la funcion que declaramos en al interface
{
int i =0;
System.out.println("Client is requesting for a connection....";
v.addElement(cr); //agregamos al cliente en el vector
i=v.indexOf(cr);
System.out.println("Timer is started" +v.size());
return i;
}

public void removeClient(int i) throws RemoteException
{
v.removeElementAt(i);//quitamos al cliente del vector
}

public void showText(String str, String destino) throws RemoteException //envio de mensajes
{
String nn="";
for(int i=0; i<v.size();i++)
{
ClientRemote crl = (ClientRemote)v.elementAt(i);//instanciamos la interface del cliente
if (crl!=null) //si no es nulo ese cliente o sea existe en el vector
{
if (crl.getName().equals(destino)) //comprabamos el destino
{
crl.getString(str); //mandamos el texto al cliente usando el metodo de la interfaz del cliente
}
}
}
}
}



Eso es por ahora la interfaz del servidor y el servidor en si ya poniendo los métodos. Nos hace falta el cliente que sera la interfaz gráfica donde nosotros escribiremos y recibiremos mensajes y la interfaz del cliente para que el servidor pueda llamar remotamente métodos del cliente también.

Para compilar estos 2 archivos que son .java abrimos la consola y nos ubicamos en la carpeta donde los tengamos. Luego llamamos la funcion de compilacion de java:

javac *.java


Despues tenemos que hacer una compilacion especial para el Servidor en si. O sea el ChatServer:

rmic ChatServer



[IMAGENES EN LA WEB]

Bueno eso es todo por ahora muchachos, el proximo tutorial sera de interfaces y de policy tools. Despues seguire con esta serie de tutoriales.

Preguntas o sugerencias en el foro.
Saludos
LeX
Datos archivados del Taringa! original
1puntos
7,052visitas
0comentarios
Actividad nueva en Posteamelo
0puntos
1visitas
0comentarios
Dar puntos:

Dejá tu comentario

0/2000

Autor del Post

u
Usuario
Puntos0
Posts4
Ver perfil →
PosteameloArchivo Histórico de Taringa! (2004-2017). Preservando la inteligencia colectiva de la internet hispanohablante.

CONTACTO

18 de Septiembre 455, Casilla 52

Chillán, Región de Ñuble, Chile

Solo correo postal

© 2026 Posteamelo.com. No afiliado con Taringa! ni sus sucesores.

Contenido preservado con fines históricos y culturales.