• No se han encontrado resultados

Juego de Cartas con Java

N/A
N/A
Protected

Academic year: 2021

Share "Juego de Cartas con Java"

Copied!
14
0
0

Texto completo

(1)

•John Michel Rivera de León

John Michel Rivera de León

Juego de Cartas con Java

TECNOLOGICO DE ESTUDIOS SUPERIORES

DEL ORIENTE DEL ESTADO DE MEXICO

(2)

Modelo básico cliente/servidor

Características:

 Los clientes y los servidores pueden estar distribuidos en diferentes máquinas.

 El mecanismo general de comunicación consiste en:

 - Cliente envía petición y espera respuesta.

 - Servidor recibe petición, procesa y contesta con respuesta.

(3)

Sistema Cliente-Servidor

o Esta forma de comunicación esta orientada a soportar los

roles y el intercambio de mensajes de las interacciones típicas entre cliente-servidor

Socket Cliente

Socket

Servidor Cualquier

puerto

Puerto acordado

Mensaje

Otros puertos

(4)

Protocolo de comunicación

 Tipos de Protocolos:

 UDP: Protocolo de Datagramas de Usuario.

TCP/IP Se compone de 2 Protocolos:

 TCP; Protocolo de Control de Transferencia

 IP; Internet Protocol

(5)

Tecnología Java

 Cuando Sun decidió lanzar su nuevo estándar Java, llamado Java2, creó tres diferentes entornos para desarrollo y

ejecución de aplicaciones:

 J2SE: Java 2 Second Edition.

 J2ME: Java 2 Micro Edition.

J2EE(Java 2 Enterprise Edition)

(6)

Servidores Multihilos

 La Tecnología Multihilos no solamente simplifica el código del servidor de manera considerable, sino que además hace mas sencillo el desarrollo de servidores que explotan el paralelismo.

Sistema operativo Hilo servidor

Petición que viene desde la red

Hilo trabajador Servidor Petición asignada hacia un hilo

trabajador

(7)

Diagrama de procesos (Servidor)

(8)

Codigo Servidor

while ( true ) {

try {

System.out.println( "Listening....Esperando Conexiones Entrantes...");

cliente = servidor.accept();

online.addElement(cliente);

entrada = new DataInputStream( cliente.getInputStream() );

String user2=(String)entrada.readUTF();

System.out.println("Peticion de Ingreso de : "+user2);

if(usuarios.contains(user2)==true){

salida= new DataOutputStream(cliente.getOutputStream());

salida.writeUTF("Ya Existe Ese nombre de Usuario");

salida.flush(); delClien(cliente);

salida.close(); entrada.close(); cliente.close();

System.out.println("Se Duplico Un nombre de usuario y se Cerro esa Conexion...");

}

else{

usuarios.addElement(user2);

new Independencia_ES(cliente, this).start(); }

}

catch (Exception e ) { System.out.println(e); }

}

(9)

Hilo administrador de cliente

do {

try {

mensaje =( String ) entrada.readUTF();

enviarDatos(mensaje);

}catch(SocketException se){ System.out.println(se);} }

} while ( !mensaje.equals(user2+": adios" ) );

public void enviarDatos( String mensaje){

try { for(int i=0;i<socks.tam2();i++){

Socket cliente2=socks.selectCliente(i);

DataOutputStream salida2 = new DataOutputStream( cliente2.getOutputStream() );

DataInputStream entrada2 = new DataInputStream( cliente2.getInputStream() );

salida2.writeUTF(mensaje);

salida2.flush();}

}catch ( IOException e) { System.out.println(e); }

}

(10)

Cliente

 El cliente utiliza una interfaz para enviar peticiones a el

servidor, a través de un protocolo de comunicación especifico de la aplicación.

Aplicación n

SO local

Aplicación n

SO local Protocolo

especifico De la aplicación

Red

Máquina servidor

Máquina cliente

(11)

Diagrama de procesos (Cliente)

(12)

Conexión al servidor

public void conectarAServidor() throws IOException{

System.out.println( "Intentando Conectar Con el Servidor...\n" );

cliente = new Socket(HOST, PUERTO);

System.out.println( "Conectado a: " +

cliente.getInetAddress().getHostName() );

}

public void obtenerFlujos() throws IOException{

salida = new DataOutputStream( cliente.getOutputStream() );

salida.writeUTF(User);

salida.flush();

salida.writeUTF(User);

salida.flush();

entrada = new DataInputStream( cliente.getInputStream() );

General.append("\n Conexion Establecida...");

System.out.println( "Conexion Establecida" );

}

(13)

Movimiento de Carta

 boton2.addMouseListener(new MouseListener() {

 public void mouseClicked(MouseEvent e) { }

 public void mousePressed(MouseEvent e) { }

 public void mouseReleased(MouseEvent e) {

 JTextField eq=new JTextField();

 String ex=""+getMousePosition();

 String exk= ex.replace("java.awt.Point[x=", "");

 eq.setText(exk);

 eq.select(0, exk.indexOf(","));

 int xok=Integer.parseInt(eq.getSelectedText());

 eq.select(exk.indexOf("=")+1,exk.length()-1);

 int yok=Integer.parseInt(eq.getSelectedText());

 boton2.setBounds(xok-32, yok-80, 77, 115);

 }

(14)

Fuentes:

Bibliografia:

 Tanenbaum, Andrew. Sistemas Operativos Distribuidos.

ED.Prentice Hall. Capitulo 1,3,4.

Deitel Deitel. Cómo Programar en Java. Ed.Pearson.

Capitulo 18 Redes.

Ken Arnold, James Gosling, David Holmes. THE Java™

Programming Language, Fourth Edition.

 Documentación de Java.

Referencias

Documento similar

b) El Tribunal Constitucional se encuadra dentro de una organiza- ción jurídico constitucional que asume la supremacía de los dere- chos fundamentales y que reconoce la separación

Primeros ecos de la Revolución griega en España: Alberto Lista y el filohelenismo liberal conservador español 369 Dimitris Miguel Morfakidis Motos.. Palabras de clausura

La Normativa de evaluación del rendimiento académico de los estudiantes y de revisión de calificaciones de la Universidad de Santiago de Compostela, aprobada por el Pleno or-

Y la valentía es casi igual de importante, porque a menudo se necesita valor para ser cariñoso, para hacer lo correcto, para proteger a los demás de daños y simplemente para

De este modo se constituye un espacio ontológico y epistemológico a la vez, en el que cada elemento (cada principio) ocupa un lugar determinado en la totalidad, y desde ahí está

o esperar la resolución expresa&#34; (artículo 94 de la Ley de procedimiento administrativo). Luego si opta por esperar la resolución expresa, todo queda supeditado a que se

Volviendo a la jurisprudencia del Tribunal de Justicia, conviene recor- dar que, con el tiempo, este órgano se vio en la necesidad de determinar si los actos de los Estados