SlideShare una empresa de Scribd logo
Desarrollar un programa que simule el interfaz software de entrada a una tarjeta de red siguiendo las
siguientes especificaciones.

La entrada está implementada mediante dos tipos de buffers. Un primer buffer donde van entrando todas las
tramas según van llegando, que tiene un espacio máximo de 4 tramas. Y un segundo buffer de espacio
ilimitado que tiene tres puertos (entendiendo por puertos, zonas de almacenamiento distintas). La entrada
debe implementar un mecanismo para mostrar el contenido de sus buffers.

Cuando el primer buffer se llene, enviará al segundo buffer de forma automática las primeras 2 tramas con
mayor prioridad. Y así sucesivamente.

Existen distintos tipos de tramas, aunque de momento solo tendremos en cuenta las tramas TCP y UDP (en
el futuro puede que tengamos que soportar más). Ahora bien, todas las tramas sean del tipo que sean,
contienen el puerto al que van dirigidas (1, 2 o 3), su prioridad (de 1 a 10, siendo 1 la mayor prioridad) y el
contenido de la trama.

Nota: ante dos tramas con el mismo valor de prioridad, tendrá más prioridad aquella cuyo contenido esté por
delante siguiendo el orden del abecedario.

Por último, crearemos una clase Actividad7 donde instanciaremos el sistema de entrada a la tarjeta de red y
le enviaremos 6 tramas de distintos tipos y con puertos y prioridades aleatorias. Una vez se hayan enviado
5 tramas, se mostrará el contenido de los buffers del sistema de entrada.

Realizar previamente el Diagrama de Clases UML.


OrdenarTramaPorPrioridad.java

import java.util.Comparator;

public class OrdenarTramaPorPrioridad implements Comparator<Object>{
        //Ordena las tramas primero por prioridad y después por contenido.
        public int compare (Object obj1, Object obj2){
                Trama trama1 = (Trama)obj1;
                Trama trama2 = (Trama)obj2;

                 if(trama1.getPrioridad() == trama2.getPrioridad()){
                        return trama1.getContenido().compareToIgnoreCase(trama2.getContenido());
                 }else{
                        return trama1.getPrioridad() - trama2.getPrioridad();
                 }
        }
}//Fin Clase




                                                      bitCoach::Juan Bautista Cascallar Lorenzo::Página 1
Trama.java
public class Trama {
       //ATRIBUTOS
       private int puerto; // 1, 2 o 3
       private int prioridad; //De 1 (máx) a 10 (mín)
       String contenido = "VACIO";


       //Constructor
       public Trama (int p, int pri, String co){
              puerto = p;
              prioridad = pri;
              contenido = co;
       }

       //SETTERS
       public void setPuerto(int param){
              puerto = param;
       }

       public void setPrioridad(int param){
              prioridad = param;
       }

       public void setContenido(String param){
              contenido = param;
       }

       //GETTERS
       public int getPuerto(){
              return puerto;
       }

       public int getPrioridad(){
              return prioridad;
       }

       public String getContenido(){
              return contenido;
       }
}


tramaUDP.java

public class tramaUDP extends Trama{

       private String id = "Soy trama TCP";

       //Constructor
       public tramaUDP(int p, int pri, String co){
              super(p,pri,co);
       }

       public String getId(){
              return id;
       }
}


tramaTCP.java
public class tramaTCP extends Trama{

       private String id = "Soy trama TCP";

       //Constructor
       public tramaTCP(int p, int pri, String co){
              super(p,pri,co);
       }

       public String getId(){
              return id;
       }
}




                                                   bitCoach::Juan Bautista Cascallar Lorenzo::Página 2
Buffer1.java

import java.util.ArrayList;
import java.util.Iterator;
import java.util.Collections;


public class Buffer1 {

       //Atributos
       private ArrayList<Object> buffer01 = new ArrayList<Object>();

       public void agregarTrama(Object trama){
              buffer01.add(trama);
              ordTramaPrioridad();
       }

       public Object extraerTramaMasPrioritaria(){
              Object trama = buffer01.get(0);
              buffer01.remove(0);
              return trama;
       }

       public int getTamanio(){
              return buffer01.size();
       }

       public void ordTramaPrioridad(){
              Collections.sort(buffer01, new OrdenarTramaPorPrioridad());
       }

       public void mostrarContenido(){

                System.out.println("===========================================================");
                System.out.println("CONTENIDO DEL PRIMER BUFFER [BUFFER1]");
                System.out.println("===========================================================");

                Iterator<Object> it = buffer01.iterator();

                while(it.hasNext()){

                         Object obj;
                         obj = it.next();

                         if(obj.getClass().getName().equals("tramaTCP")){
                                tramaTCP tcpAux;
                                tcpAux = (tramaTCP)obj;
                                System.out.println("--Trama TCP-----------------------");
                                System.out.println("PUERTO: " + tcpAux.getPuerto());
                                System.out.println("PRIORIDAD: " + tcpAux.getPrioridad());
                                System.out.println("CONTENIDO: " + tcpAux.getContenido());
                                System.out.println("--Trama TCP-----------------------");
                         }else{
                                tramaUDP udpAux;
                                udpAux = (tramaUDP)obj;
                                System.out.println("--Trama UDP-----------------------");
                                System.out.println("PUERTO: " + udpAux.getPuerto());
                                System.out.println("PRIORIDAD: " + udpAux.getPrioridad());
                                System.out.println("CONTENIDO: " + udpAux.getContenido());
                                System.out.println("--Trama UDP-----------------------");
                         }
                }
       }

}//Fin clase.




                                                    bitCoach::Juan Bautista Cascallar Lorenzo::Página 3
Buffer2.java

import java.util.ArrayList;
import java.util.Iterator;

public class Buffer2 {

       private ArrayList<Object> puerto01 = new ArrayList<Object>();
       private ArrayList<Object> puerto02 = new ArrayList<Object>();
       private ArrayList<Object> puerto03 = new ArrayList<Object>();


       //Otros métodos
       public void agregarTrama(Object trama){
              Trama obj = (Trama)trama;
              switch(obj.getPuerto()){
              case 1:
                      puerto01.add(trama);
                      break;
              case 2:
                      puerto02.add(trama);
                      break;
              case 3:
                      puerto03.add(trama);
                      break;
              }
       }//Fin function

       public void mostrarContenido(){

               System.out.println("===========================================================");
               System.out.println("CONTENIDO DEL SEGUNDO BUFFER [BUFFER2]");
               System.out.println("===========================================================");

               System.out.println("Tramas en Puerto 01");
               Iterator<Object> iterador = puerto01.iterator();
               leerPuerto(iterador);


               System.out.println("Tramas en Puerto 02");
               iterador = puerto02.iterator();
               leerPuerto(iterador);

               System.out.println("Tramas en Puerto 03");
               iterador = puerto03.iterator();
               leerPuerto(iterador);

       }

       private void leerPuerto(Iterator<Object> it){

               while(it.hasNext()){

                         Object obj;
                         obj = it.next();

                         if(obj.getClass().getName() == "tramaTCP"){
                                tramaTCP tcpAux;
                                tcpAux = (tramaTCP)obj;
                                System.out.println("--Trama TCP-----------------------");
                                System.out.println("PUERTO: " + tcpAux.getPuerto());
                                System.out.println("PRIORIDAD: " + tcpAux.getPrioridad());
                                System.out.println("CONTENIDO: " + tcpAux.getContenido());
                                System.out.println("--Trama TCP-----------------------");
                         }else{
                                tramaUDP udpAux;
                                udpAux = (tramaUDP)obj;
                                System.out.println("--Trama UDP-----------------------");
                                System.out.println("PUERTO: " + udpAux.getPuerto());
                                System.out.println("PRIORIDAD: " + udpAux.getPrioridad());
                                System.out.println("CONTENIDO: " + udpAux.getContenido());
                                System.out.println("--Trama UDP-----------------------");
                         }
               }
       }

}//Fin clase




                                                    bitCoach::Juan Bautista Cascallar Lorenzo::Página 4
InterfazRed.java
public class InterfazRed {

       //Atributos
       private Buffer1 bf1 = new Buffer1();
       private Buffer2 bf2 = new Buffer2();

       public void agregarTrama(Object trama){
              if(bf1.getTamanio() < 4){
                      bf1.agregarTrama(trama);
              }else{
                      //Extraer las dos primeras tramas del primer buffer.
                      bf2.agregarTrama(bf1.extraerTramaMasPrioritaria());
                      bf2.agregarTrama(bf1.extraerTramaMasPrioritaria());
                      bf1.agregarTrama(trama);
              }
       }//Fin function

       public void mostrarBuffers(){
              bf1.mostrarContenido();
              bf2.mostrarContenido();
       }

}//Fin Clase


TestTramas.java
public class TestTramas {

       /**
        * @param args
        */

       public static void main(String[] args) {
              // TODO Auto-generated method stub

               InterfazRed interfaz = new InterfazRed();

               //Creamos las   seis tramas (puerto,prioridad 1+..10-,datos)
               /*
               tramaTCP TCP1   = new tramaTCP(1,1,"d");
               tramaTCP TCP2   = new tramaTCP(2,1,"c");
               tramaTCP TCP3   = new tramaTCP(3,2,"b");
               */
               tramaTCP TCP1   = new tramaTCP((int) (Math.random()*3+1),(int)
(Math.random()*10+1),"a");
               tramaTCP TCP2   = new tramaTCP((int) (Math.random()*3+1),(int)
(Math.random()*10+1),"c");
               tramaTCP TCP3   = new tramaTCP((int) (Math.random()*3+1),(int)
(Math.random()*10+1),"e");
               //---
               /*
               tramaUDP UDP1   = new tramaUDP(1,1,"a");
               tramaUDP UDP2   = new tramaUDP(2,2,"b");
               tramaUDP UDP3   = new tramaUDP(3,2,"a");
               */
               tramaUDP UDP1   = new tramaUDP((int) (Math.random()*3+1),(int)
(Math.random()*10+1),"e");
               tramaUDP UDP2   = new tramaUDP((int) (Math.random()*3+1),(int)
(Math.random()*10+1),"e");
               tramaUDP UDP3   = new tramaUDP((int) (Math.random()*3+1),(int)
(Math.random()*10+1),"e");

               interfaz.agregarTrama(TCP1);
               interfaz.agregarTrama(TCP2);
               interfaz.agregarTrama(TCP3);
               interfaz.agregarTrama(UDP1);
               interfaz.agregarTrama(UDP2);
               interfaz.agregarTrama(UDP3);

               interfaz.mostrarBuffers();

       }//Fin Function

}//Fin Clase




                                                   bitCoach::Juan Bautista Cascallar Lorenzo::Página 5
Diagrama de Clases UML




                         bitCoach::Juan Bautista Cascallar Lorenzo::Página 6

Más contenido relacionado

La actualidad más candente

Groovy no es java sin punto y coma v3
Groovy no es java sin punto y coma v3Groovy no es java sin punto y coma v3
Groovy no es java sin punto y coma v3
Pablo Alba
 
Analisis programacion de pc.
Analisis programacion de pc.Analisis programacion de pc.
Analisis programacion de pc.
JOSE2015DANIEL
 
DescripcióN De Codigo Y Interfaz
DescripcióN De Codigo Y InterfazDescripcióN De Codigo Y Interfaz
DescripcióN De Codigo Y Interfaz
luisfe
 
PARADIGMAS FP Y OOP USANDO TÉCNICAS AVANZADAS DE PROGRAMACIÓN ASÍNCRONA
PARADIGMAS FP  Y OOP USANDO TÉCNICAS AVANZADAS DE PROGRAMACIÓN ASÍNCRONAPARADIGMAS FP  Y OOP USANDO TÉCNICAS AVANZADAS DE PROGRAMACIÓN ASÍNCRONA
PARADIGMAS FP Y OOP USANDO TÉCNICAS AVANZADAS DE PROGRAMACIÓN ASÍNCRONA
Víctor Bolinches
 
Programacion en python_2
Programacion en python_2Programacion en python_2
Programacion en python_2
wozgeass
 
Semana 1 Estructuras de Datos en Java
Semana 1   Estructuras de Datos en JavaSemana 1   Estructuras de Datos en Java
Semana 1 Estructuras de Datos en Java
Richard Eliseo Mendoza Gafaro
 
Resumen java
Resumen javaResumen java
Resumen java
Emerson Garay
 
Quasi - Practicas de Programacion en C
Quasi - Practicas de Programacion en CQuasi - Practicas de Programacion en C
Quasi - Practicas de Programacion en Cdegarden
 
1.2. kotlin (1)
1.2. kotlin (1)1.2. kotlin (1)
1.2. kotlin (1)
xavazque2
 
Semana 5 Java Swing
Semana 5   Java SwingSemana 5   Java Swing
Semana 5 Java Swing
Richard Eliseo Mendoza Gafaro
 
Unidad iii pilas y colas
Unidad iii pilas y colasUnidad iii pilas y colas
Unidad iii pilas y colas
TAtiizz Villalobos
 
Ejercicios
EjerciciosEjercicios
EjerciciosEzmee XD
 
Entrega de reporte no 1, lab 1
Entrega de reporte no 1, lab 1Entrega de reporte no 1, lab 1
Entrega de reporte no 1, lab 1Antares Zehcnas
 
Por pagar
Por pagarPor pagar

La actualidad más candente (20)

Programas en netbeans
Programas en netbeansProgramas en netbeans
Programas en netbeans
 
Java
JavaJava
Java
 
Groovy no es java sin punto y coma v3
Groovy no es java sin punto y coma v3Groovy no es java sin punto y coma v3
Groovy no es java sin punto y coma v3
 
Prac1
Prac1Prac1
Prac1
 
Analisis programacion de pc.
Analisis programacion de pc.Analisis programacion de pc.
Analisis programacion de pc.
 
DescripcióN De Codigo Y Interfaz
DescripcióN De Codigo Y InterfazDescripcióN De Codigo Y Interfaz
DescripcióN De Codigo Y Interfaz
 
PARADIGMAS FP Y OOP USANDO TÉCNICAS AVANZADAS DE PROGRAMACIÓN ASÍNCRONA
PARADIGMAS FP  Y OOP USANDO TÉCNICAS AVANZADAS DE PROGRAMACIÓN ASÍNCRONAPARADIGMAS FP  Y OOP USANDO TÉCNICAS AVANZADAS DE PROGRAMACIÓN ASÍNCRONA
PARADIGMAS FP Y OOP USANDO TÉCNICAS AVANZADAS DE PROGRAMACIÓN ASÍNCRONA
 
Programacion en python_2
Programacion en python_2Programacion en python_2
Programacion en python_2
 
Reporte viernes 24
Reporte viernes 24Reporte viernes 24
Reporte viernes 24
 
Semana 1 Estructuras de Datos en Java
Semana 1   Estructuras de Datos en JavaSemana 1   Estructuras de Datos en Java
Semana 1 Estructuras de Datos en Java
 
Resumen java
Resumen javaResumen java
Resumen java
 
Quasi - Practicas de Programacion en C
Quasi - Practicas de Programacion en CQuasi - Practicas de Programacion en C
Quasi - Practicas de Programacion en C
 
Taller interfaz 2
Taller interfaz 2Taller interfaz 2
Taller interfaz 2
 
1.2. kotlin (1)
1.2. kotlin (1)1.2. kotlin (1)
1.2. kotlin (1)
 
Semana 5 Java Swing
Semana 5   Java SwingSemana 5   Java Swing
Semana 5 Java Swing
 
Unidad iii pilas y colas
Unidad iii pilas y colasUnidad iii pilas y colas
Unidad iii pilas y colas
 
Ejercicios
EjerciciosEjercicios
Ejercicios
 
Interfaces con Java
Interfaces con JavaInterfaces con Java
Interfaces con Java
 
Entrega de reporte no 1, lab 1
Entrega de reporte no 1, lab 1Entrega de reporte no 1, lab 1
Entrega de reporte no 1, lab 1
 
Por pagar
Por pagarPor pagar
Por pagar
 

Destacado

Explicación del código del Servlet HolaMundo
Explicación del código del Servlet HolaMundoExplicación del código del Servlet HolaMundo
Explicación del código del Servlet HolaMundo
jubacalo
 
Acciones JSP
Acciones JSPAcciones JSP
Acciones JSPjubacalo
 
Jsp directiva page
Jsp directiva pageJsp directiva page
Jsp directiva pagejubacalo
 
Find File Servlet DB
Find File Servlet DBFind File Servlet DB
Find File Servlet DB
jubacalo
 
Proyecto JSP
Proyecto JSPProyecto JSP
Proyecto JSPjubacalo
 
Elementos de script en JSP
Elementos de script en JSPElementos de script en JSP
Elementos de script en JSP
jubacalo
 
Servlets que manejan datos de formularios HTML
Servlets que manejan datos de formularios HTMLServlets que manejan datos de formularios HTML
Servlets que manejan datos de formularios HTML
jubacalo
 
Java AWT Calculadora
Java AWT CalculadoraJava AWT Calculadora
Java AWT Calculadora
jubacalo
 
Acceso a BBDD mediante un servlet
Acceso a BBDD mediante un servletAcceso a BBDD mediante un servlet
Acceso a BBDD mediante un servlet
jubacalo
 
Servlet Hola Mundo con Eclipse y Tomcat
Servlet Hola Mundo con Eclipse y TomcatServlet Hola Mundo con Eclipse y Tomcat
Servlet Hola Mundo con Eclipse y Tomcat
jubacalo
 
Java Thread Cronometro
Java Thread CronometroJava Thread Cronometro
Java Thread Cronometrojubacalo
 
Java AWT Tres en Raya
Java AWT Tres en RayaJava AWT Tres en Raya
Java AWT Tres en Raya
jubacalo
 
jQuery Mobile :: Cuadros de diálogo
jQuery Mobile :: Cuadros de diálogojQuery Mobile :: Cuadros de diálogo
jQuery Mobile :: Cuadros de diálogo
jubacalo
 
Java Mail
Java MailJava Mail
Práctica Completa en Flash – ActionScript
Práctica Completa en Flash – ActionScriptPráctica Completa en Flash – ActionScript
Práctica Completa en Flash – ActionScript
jubacalo
 
jQuery Mobile :: Enlaces a páginas internas.
jQuery Mobile :: Enlaces a páginas internas.jQuery Mobile :: Enlaces a páginas internas.
jQuery Mobile :: Enlaces a páginas internas.
jubacalo
 
Tienda virtual php_mysql
Tienda virtual php_mysqlTienda virtual php_mysql
Tienda virtual php_mysqljubacalo
 
Crear Base de Datos en Oracle
Crear Base de Datos en OracleCrear Base de Datos en Oracle
Crear Base de Datos en Oracle
jubacalo
 

Destacado (18)

Explicación del código del Servlet HolaMundo
Explicación del código del Servlet HolaMundoExplicación del código del Servlet HolaMundo
Explicación del código del Servlet HolaMundo
 
Acciones JSP
Acciones JSPAcciones JSP
Acciones JSP
 
Jsp directiva page
Jsp directiva pageJsp directiva page
Jsp directiva page
 
Find File Servlet DB
Find File Servlet DBFind File Servlet DB
Find File Servlet DB
 
Proyecto JSP
Proyecto JSPProyecto JSP
Proyecto JSP
 
Elementos de script en JSP
Elementos de script en JSPElementos de script en JSP
Elementos de script en JSP
 
Servlets que manejan datos de formularios HTML
Servlets que manejan datos de formularios HTMLServlets que manejan datos de formularios HTML
Servlets que manejan datos de formularios HTML
 
Java AWT Calculadora
Java AWT CalculadoraJava AWT Calculadora
Java AWT Calculadora
 
Acceso a BBDD mediante un servlet
Acceso a BBDD mediante un servletAcceso a BBDD mediante un servlet
Acceso a BBDD mediante un servlet
 
Servlet Hola Mundo con Eclipse y Tomcat
Servlet Hola Mundo con Eclipse y TomcatServlet Hola Mundo con Eclipse y Tomcat
Servlet Hola Mundo con Eclipse y Tomcat
 
Java Thread Cronometro
Java Thread CronometroJava Thread Cronometro
Java Thread Cronometro
 
Java AWT Tres en Raya
Java AWT Tres en RayaJava AWT Tres en Raya
Java AWT Tres en Raya
 
jQuery Mobile :: Cuadros de diálogo
jQuery Mobile :: Cuadros de diálogojQuery Mobile :: Cuadros de diálogo
jQuery Mobile :: Cuadros de diálogo
 
Java Mail
Java MailJava Mail
Java Mail
 
Práctica Completa en Flash – ActionScript
Práctica Completa en Flash – ActionScriptPráctica Completa en Flash – ActionScript
Práctica Completa en Flash – ActionScript
 
jQuery Mobile :: Enlaces a páginas internas.
jQuery Mobile :: Enlaces a páginas internas.jQuery Mobile :: Enlaces a páginas internas.
jQuery Mobile :: Enlaces a páginas internas.
 
Tienda virtual php_mysql
Tienda virtual php_mysqlTienda virtual php_mysql
Tienda virtual php_mysql
 
Crear Base de Datos en Oracle
Crear Base de Datos en OracleCrear Base de Datos en Oracle
Crear Base de Datos en Oracle
 

Similar a Java ArrayList Iterator

Ejercicios en Netbeans
Ejercicios en NetbeansEjercicios en Netbeans
Ejercicios en Netbeansedgar muñoz
 
Ejerciciosdeprogramacionconcurrente 111021172712-phpapp01
Ejerciciosdeprogramacionconcurrente 111021172712-phpapp01Ejerciciosdeprogramacionconcurrente 111021172712-phpapp01
Ejerciciosdeprogramacionconcurrente 111021172712-phpapp01cursobeta
 
Informe Poo
Informe PooInforme Poo
Multitarea e hilos en java con ejemplos
Multitarea e hilos en java con ejemplosMultitarea e hilos en java con ejemplos
Multitarea e hilos en java con ejemplos
Carlos Anibal Riascos Hurtado
 
Pila dinamica y pila estatica
Pila dinamica y pila estaticaPila dinamica y pila estatica
Pila dinamica y pila estatica
JoeCorp
 
Apache Storm: Desarrollo
Apache Storm: DesarrolloApache Storm: Desarrollo
Apache Storm: Desarrollo
Stratebi
 
Practica 2
Practica 2Practica 2
Practica 2
Isul Anlu
 
Resultset
ResultsetResultset
Programas en netbeans
Programas en netbeansProgramas en netbeans
Programas en netbeans
Jonathan Israel
 
NOTACIÓN POSTFIJA E INFIJA - JAVA
NOTACIÓN POSTFIJA E INFIJA - JAVANOTACIÓN POSTFIJA E INFIJA - JAVA
NOTACIÓN POSTFIJA E INFIJA - JAVA
Shirley Contreras Ulloa
 
6 Upv Solo Pruebas 2009
6 Upv Solo Pruebas 20096 Upv Solo Pruebas 2009
6 Upv Solo Pruebas 2009
Pepe
 
Sistemas Distribuidos y Paralelismo - Unidad 2
Sistemas Distribuidos y Paralelismo - Unidad 2Sistemas Distribuidos y Paralelismo - Unidad 2
Sistemas Distribuidos y Paralelismo - Unidad 2ingnucious
 
Ejemplo de RPC (Servidor de Archivos) enviar archivo en Java utilizando RPC
Ejemplo de RPC (Servidor de Archivos) enviar archivo en Java utilizando RPCEjemplo de RPC (Servidor de Archivos) enviar archivo en Java utilizando RPC
Ejemplo de RPC (Servidor de Archivos) enviar archivo en Java utilizando RPC
Ivan Luis Jimenez
 
⭐⭐⭐⭐⭐ SOLUCIÓN LECCIÓN SISTEMAS EMBEBIDOS, 2do Parcial (2020 PAO 1)
⭐⭐⭐⭐⭐ SOLUCIÓN LECCIÓN SISTEMAS EMBEBIDOS, 2do Parcial (2020 PAO 1)⭐⭐⭐⭐⭐ SOLUCIÓN LECCIÓN SISTEMAS EMBEBIDOS, 2do Parcial (2020 PAO 1)
⭐⭐⭐⭐⭐ SOLUCIÓN LECCIÓN SISTEMAS EMBEBIDOS, 2do Parcial (2020 PAO 1)
Victor Asanza
 
Guia para examen java
Guia para examen javaGuia para examen java
Guia para examen javatecno5
 

Similar a Java ArrayList Iterator (20)

Ejercicios en Netbeans
Ejercicios en NetbeansEjercicios en Netbeans
Ejercicios en Netbeans
 
Ejerciciosdeprogramacionconcurrente 111021172712-phpapp01
Ejerciciosdeprogramacionconcurrente 111021172712-phpapp01Ejerciciosdeprogramacionconcurrente 111021172712-phpapp01
Ejerciciosdeprogramacionconcurrente 111021172712-phpapp01
 
Informe Poo
Informe PooInforme Poo
Informe Poo
 
Multitarea e hilos en java con ejemplos
Multitarea e hilos en java con ejemplosMultitarea e hilos en java con ejemplos
Multitarea e hilos en java con ejemplos
 
Pila dinamica y pila estatica
Pila dinamica y pila estaticaPila dinamica y pila estatica
Pila dinamica y pila estatica
 
Apache Storm: Desarrollo
Apache Storm: DesarrolloApache Storm: Desarrollo
Apache Storm: Desarrollo
 
Desarrollo de programas_ejemplos_01
Desarrollo de programas_ejemplos_01Desarrollo de programas_ejemplos_01
Desarrollo de programas_ejemplos_01
 
Desarrollo De Programas Ejemplos 01
Desarrollo De Programas Ejemplos 01Desarrollo De Programas Ejemplos 01
Desarrollo De Programas Ejemplos 01
 
Practica 2
Practica 2Practica 2
Practica 2
 
Creacion de proyecto_en_netbeans
Creacion de proyecto_en_netbeansCreacion de proyecto_en_netbeans
Creacion de proyecto_en_netbeans
 
Resultset
ResultsetResultset
Resultset
 
Programas en netbeans
Programas en netbeansProgramas en netbeans
Programas en netbeans
 
NOTACIÓN POSTFIJA E INFIJA - JAVA
NOTACIÓN POSTFIJA E INFIJA - JAVANOTACIÓN POSTFIJA E INFIJA - JAVA
NOTACIÓN POSTFIJA E INFIJA - JAVA
 
6 Upv Solo Pruebas 2009
6 Upv Solo Pruebas 20096 Upv Solo Pruebas 2009
6 Upv Solo Pruebas 2009
 
Sistemas Distribuidos y Paralelismo - Unidad 2
Sistemas Distribuidos y Paralelismo - Unidad 2Sistemas Distribuidos y Paralelismo - Unidad 2
Sistemas Distribuidos y Paralelismo - Unidad 2
 
Sockets
SocketsSockets
Sockets
 
Tema3 p2%20
Tema3 p2%20Tema3 p2%20
Tema3 p2%20
 
Ejemplo de RPC (Servidor de Archivos) enviar archivo en Java utilizando RPC
Ejemplo de RPC (Servidor de Archivos) enviar archivo en Java utilizando RPCEjemplo de RPC (Servidor de Archivos) enviar archivo en Java utilizando RPC
Ejemplo de RPC (Servidor de Archivos) enviar archivo en Java utilizando RPC
 
⭐⭐⭐⭐⭐ SOLUCIÓN LECCIÓN SISTEMAS EMBEBIDOS, 2do Parcial (2020 PAO 1)
⭐⭐⭐⭐⭐ SOLUCIÓN LECCIÓN SISTEMAS EMBEBIDOS, 2do Parcial (2020 PAO 1)⭐⭐⭐⭐⭐ SOLUCIÓN LECCIÓN SISTEMAS EMBEBIDOS, 2do Parcial (2020 PAO 1)
⭐⭐⭐⭐⭐ SOLUCIÓN LECCIÓN SISTEMAS EMBEBIDOS, 2do Parcial (2020 PAO 1)
 
Guia para examen java
Guia para examen javaGuia para examen java
Guia para examen java
 

Más de jubacalo

MIT App Inventor2 Pintar en Imagen
MIT App Inventor2 Pintar en ImagenMIT App Inventor2 Pintar en Imagen
MIT App Inventor2 Pintar en Imagenjubacalo
 
Cronómetro con MIT App Inventor 2
Cronómetro con MIT App Inventor 2Cronómetro con MIT App Inventor 2
Cronómetro con MIT App Inventor 2
jubacalo
 
App Android MiniBanco
App Android MiniBancoApp Android MiniBanco
App Android MiniBancojubacalo
 
Configurar entorno Android
Configurar entorno AndroidConfigurar entorno Android
Configurar entorno Android
jubacalo
 
Web de noticias en Ajax
Web de noticias en AjaxWeb de noticias en Ajax
Web de noticias en Ajax
jubacalo
 
Escenarios
EscenariosEscenarios
Escenariosjubacalo
 
Matrices02
Matrices02Matrices02
Matrices02jubacalo
 
Tabla Dinámica
Tabla DinámicaTabla Dinámica
Tabla Dinámicajubacalo
 
Tabla de Datos
Tabla de DatosTabla de Datos
Tabla de Datosjubacalo
 
Textura de agua
Textura de aguaTextura de agua
Textura de aguajubacalo
 
Funciones lógicas y condicionales
Funciones lógicas y condicionalesFunciones lógicas y condicionales
Funciones lógicas y condicionalesjubacalo
 
Word VBA
Word VBAWord VBA
Word VBA
jubacalo
 
Java Thread Cronometro
Java Thread CronometroJava Thread Cronometro
Java Thread Cronometrojubacalo
 

Más de jubacalo (15)

MIT App Inventor2 Pintar en Imagen
MIT App Inventor2 Pintar en ImagenMIT App Inventor2 Pintar en Imagen
MIT App Inventor2 Pintar en Imagen
 
Cronómetro con MIT App Inventor 2
Cronómetro con MIT App Inventor 2Cronómetro con MIT App Inventor 2
Cronómetro con MIT App Inventor 2
 
App Android MiniBanco
App Android MiniBancoApp Android MiniBanco
App Android MiniBanco
 
Configurar entorno Android
Configurar entorno AndroidConfigurar entorno Android
Configurar entorno Android
 
Web de noticias en Ajax
Web de noticias en AjaxWeb de noticias en Ajax
Web de noticias en Ajax
 
Escenarios
EscenariosEscenarios
Escenarios
 
Matrices02
Matrices02Matrices02
Matrices02
 
Gráficos
GráficosGráficos
Gráficos
 
Tabla Dinámica
Tabla DinámicaTabla Dinámica
Tabla Dinámica
 
Tabla de Datos
Tabla de DatosTabla de Datos
Tabla de Datos
 
Textura de agua
Textura de aguaTextura de agua
Textura de agua
 
Funciones lógicas y condicionales
Funciones lógicas y condicionalesFunciones lógicas y condicionales
Funciones lógicas y condicionales
 
Solver
SolverSolver
Solver
 
Word VBA
Word VBAWord VBA
Word VBA
 
Java Thread Cronometro
Java Thread CronometroJava Thread Cronometro
Java Thread Cronometro
 

Último

665033394-TODAS-LAS-SANGRES-resumen-Por-Capitulos.pdf
665033394-TODAS-LAS-SANGRES-resumen-Por-Capitulos.pdf665033394-TODAS-LAS-SANGRES-resumen-Por-Capitulos.pdf
665033394-TODAS-LAS-SANGRES-resumen-Por-Capitulos.pdf
valerytorresmendizab
 
LA PEDAGOGIA AUTOGESTONARIA EN EL PROCESO DE ENSEÑANZA APRENDIZAJE
LA PEDAGOGIA AUTOGESTONARIA EN EL PROCESO DE ENSEÑANZA APRENDIZAJELA PEDAGOGIA AUTOGESTONARIA EN EL PROCESO DE ENSEÑANZA APRENDIZAJE
LA PEDAGOGIA AUTOGESTONARIA EN EL PROCESO DE ENSEÑANZA APRENDIZAJE
jecgjv
 
El ensayo mexicano en el siglo XX LITERATURA
El ensayo mexicano en el siglo XX LITERATURAEl ensayo mexicano en el siglo XX LITERATURA
El ensayo mexicano en el siglo XX LITERATURA
Armando920824
 
Dia de la Bandera colegio Santa Angela 2024
Dia de la Bandera colegio Santa Angela 2024Dia de la Bandera colegio Santa Angela 2024
Dia de la Bandera colegio Santa Angela 2024
77361565
 
Tema 3-2 Aparato reproductor femenino 2024
Tema 3-2 Aparato reproductor femenino 2024Tema 3-2 Aparato reproductor femenino 2024
Tema 3-2 Aparato reproductor femenino 2024
IES Vicent Andres Estelles
 
Planificación Ejemplo con la metodología TPACK
Planificación Ejemplo con la metodología  TPACKPlanificación Ejemplo con la metodología  TPACK
Planificación Ejemplo con la metodología TPACK
ssusera6697f
 
Las Tecnologias Digitales en los Aprendizajesdel Siglo XXI UNESCO Ccesa007.pdf
Las Tecnologias Digitales en los Aprendizajesdel Siglo XXI  UNESCO Ccesa007.pdfLas Tecnologias Digitales en los Aprendizajesdel Siglo XXI  UNESCO Ccesa007.pdf
Las Tecnologias Digitales en los Aprendizajesdel Siglo XXI UNESCO Ccesa007.pdf
Demetrio Ccesa Rayme
 
El Liberalismo económico en la sociedad y en el mundo
El Liberalismo económico en la sociedad y en el mundoEl Liberalismo económico en la sociedad y en el mundo
El Liberalismo económico en la sociedad y en el mundo
SandraBenitez52
 
Guia Practica de ChatGPT para Docentes Ccesa007.pdf
Guia Practica de ChatGPT para Docentes Ccesa007.pdfGuia Practica de ChatGPT para Docentes Ccesa007.pdf
Guia Practica de ChatGPT para Docentes Ccesa007.pdf
Demetrio Ccesa Rayme
 
Mauricio-Presentación-Vacacional- 2024-1
Mauricio-Presentación-Vacacional- 2024-1Mauricio-Presentación-Vacacional- 2024-1
Mauricio-Presentación-Vacacional- 2024-1
MauricioSnchez83
 
Horarios y fechas de la PAU 2024 en la Comunidad Valenciana.
Horarios y fechas de la PAU 2024 en la Comunidad Valenciana.Horarios y fechas de la PAU 2024 en la Comunidad Valenciana.
Horarios y fechas de la PAU 2024 en la Comunidad Valenciana.
20minutos
 
El lugar mas bonito del mundo resumen del libro
El lugar mas bonito del mundo resumen del libroEl lugar mas bonito del mundo resumen del libro
El lugar mas bonito del mundo resumen del libro
Distea V región
 
INFORME MINEDU DEL PRIMER SIMULACRO 2024.pdf
INFORME MINEDU DEL PRIMER SIMULACRO 2024.pdfINFORME MINEDU DEL PRIMER SIMULACRO 2024.pdf
INFORME MINEDU DEL PRIMER SIMULACRO 2024.pdf
Alejandrogarciapanta
 
Presentación Curso C. Diferencial - 2024-1.pdf
Presentación Curso C. Diferencial - 2024-1.pdfPresentación Curso C. Diferencial - 2024-1.pdf
Presentación Curso C. Diferencial - 2024-1.pdf
H4RV3YH3RN4ND3Z
 
Examen Lengua y Literatura EVAU Andalucía.pdf
Examen Lengua y Literatura EVAU Andalucía.pdfExamen Lengua y Literatura EVAU Andalucía.pdf
Examen Lengua y Literatura EVAU Andalucía.pdf
20minutos
 
225189039-Jornada-de-Errores-Medicos-Rafael-Olivera-Figueroa.pdf
225189039-Jornada-de-Errores-Medicos-Rafael-Olivera-Figueroa.pdf225189039-Jornada-de-Errores-Medicos-Rafael-Olivera-Figueroa.pdf
225189039-Jornada-de-Errores-Medicos-Rafael-Olivera-Figueroa.pdf
ReivajZetinebAvlis
 
Blogs_y_Educacion_Por Zaracho Lautaro_.pdf
Blogs_y_Educacion_Por Zaracho Lautaro_.pdfBlogs_y_Educacion_Por Zaracho Lautaro_.pdf
Blogs_y_Educacion_Por Zaracho Lautaro_.pdf
lautyzaracho4
 
Tema 3-3 Métodos anticonceptivos y ETS 2024
Tema 3-3 Métodos anticonceptivos y ETS 2024Tema 3-3 Métodos anticonceptivos y ETS 2024
Tema 3-3 Métodos anticonceptivos y ETS 2024
IES Vicent Andres Estelles
 
Septima-Sesion-Ordinaria-del-Consejo-Tecnico-Escolar-y-el-Taller-Intensivo-de...
Septima-Sesion-Ordinaria-del-Consejo-Tecnico-Escolar-y-el-Taller-Intensivo-de...Septima-Sesion-Ordinaria-del-Consejo-Tecnico-Escolar-y-el-Taller-Intensivo-de...
Septima-Sesion-Ordinaria-del-Consejo-Tecnico-Escolar-y-el-Taller-Intensivo-de...
AracelidelRocioOrdez
 
El espiritismo desenmascarado.pdf. Lec. 10
El espiritismo desenmascarado.pdf. Lec. 10El espiritismo desenmascarado.pdf. Lec. 10
El espiritismo desenmascarado.pdf. Lec. 10
Alejandrino Halire Ccahuana
 

Último (20)

665033394-TODAS-LAS-SANGRES-resumen-Por-Capitulos.pdf
665033394-TODAS-LAS-SANGRES-resumen-Por-Capitulos.pdf665033394-TODAS-LAS-SANGRES-resumen-Por-Capitulos.pdf
665033394-TODAS-LAS-SANGRES-resumen-Por-Capitulos.pdf
 
LA PEDAGOGIA AUTOGESTONARIA EN EL PROCESO DE ENSEÑANZA APRENDIZAJE
LA PEDAGOGIA AUTOGESTONARIA EN EL PROCESO DE ENSEÑANZA APRENDIZAJELA PEDAGOGIA AUTOGESTONARIA EN EL PROCESO DE ENSEÑANZA APRENDIZAJE
LA PEDAGOGIA AUTOGESTONARIA EN EL PROCESO DE ENSEÑANZA APRENDIZAJE
 
El ensayo mexicano en el siglo XX LITERATURA
El ensayo mexicano en el siglo XX LITERATURAEl ensayo mexicano en el siglo XX LITERATURA
El ensayo mexicano en el siglo XX LITERATURA
 
Dia de la Bandera colegio Santa Angela 2024
Dia de la Bandera colegio Santa Angela 2024Dia de la Bandera colegio Santa Angela 2024
Dia de la Bandera colegio Santa Angela 2024
 
Tema 3-2 Aparato reproductor femenino 2024
Tema 3-2 Aparato reproductor femenino 2024Tema 3-2 Aparato reproductor femenino 2024
Tema 3-2 Aparato reproductor femenino 2024
 
Planificación Ejemplo con la metodología TPACK
Planificación Ejemplo con la metodología  TPACKPlanificación Ejemplo con la metodología  TPACK
Planificación Ejemplo con la metodología TPACK
 
Las Tecnologias Digitales en los Aprendizajesdel Siglo XXI UNESCO Ccesa007.pdf
Las Tecnologias Digitales en los Aprendizajesdel Siglo XXI  UNESCO Ccesa007.pdfLas Tecnologias Digitales en los Aprendizajesdel Siglo XXI  UNESCO Ccesa007.pdf
Las Tecnologias Digitales en los Aprendizajesdel Siglo XXI UNESCO Ccesa007.pdf
 
El Liberalismo económico en la sociedad y en el mundo
El Liberalismo económico en la sociedad y en el mundoEl Liberalismo económico en la sociedad y en el mundo
El Liberalismo económico en la sociedad y en el mundo
 
Guia Practica de ChatGPT para Docentes Ccesa007.pdf
Guia Practica de ChatGPT para Docentes Ccesa007.pdfGuia Practica de ChatGPT para Docentes Ccesa007.pdf
Guia Practica de ChatGPT para Docentes Ccesa007.pdf
 
Mauricio-Presentación-Vacacional- 2024-1
Mauricio-Presentación-Vacacional- 2024-1Mauricio-Presentación-Vacacional- 2024-1
Mauricio-Presentación-Vacacional- 2024-1
 
Horarios y fechas de la PAU 2024 en la Comunidad Valenciana.
Horarios y fechas de la PAU 2024 en la Comunidad Valenciana.Horarios y fechas de la PAU 2024 en la Comunidad Valenciana.
Horarios y fechas de la PAU 2024 en la Comunidad Valenciana.
 
El lugar mas bonito del mundo resumen del libro
El lugar mas bonito del mundo resumen del libroEl lugar mas bonito del mundo resumen del libro
El lugar mas bonito del mundo resumen del libro
 
INFORME MINEDU DEL PRIMER SIMULACRO 2024.pdf
INFORME MINEDU DEL PRIMER SIMULACRO 2024.pdfINFORME MINEDU DEL PRIMER SIMULACRO 2024.pdf
INFORME MINEDU DEL PRIMER SIMULACRO 2024.pdf
 
Presentación Curso C. Diferencial - 2024-1.pdf
Presentación Curso C. Diferencial - 2024-1.pdfPresentación Curso C. Diferencial - 2024-1.pdf
Presentación Curso C. Diferencial - 2024-1.pdf
 
Examen Lengua y Literatura EVAU Andalucía.pdf
Examen Lengua y Literatura EVAU Andalucía.pdfExamen Lengua y Literatura EVAU Andalucía.pdf
Examen Lengua y Literatura EVAU Andalucía.pdf
 
225189039-Jornada-de-Errores-Medicos-Rafael-Olivera-Figueroa.pdf
225189039-Jornada-de-Errores-Medicos-Rafael-Olivera-Figueroa.pdf225189039-Jornada-de-Errores-Medicos-Rafael-Olivera-Figueroa.pdf
225189039-Jornada-de-Errores-Medicos-Rafael-Olivera-Figueroa.pdf
 
Blogs_y_Educacion_Por Zaracho Lautaro_.pdf
Blogs_y_Educacion_Por Zaracho Lautaro_.pdfBlogs_y_Educacion_Por Zaracho Lautaro_.pdf
Blogs_y_Educacion_Por Zaracho Lautaro_.pdf
 
Tema 3-3 Métodos anticonceptivos y ETS 2024
Tema 3-3 Métodos anticonceptivos y ETS 2024Tema 3-3 Métodos anticonceptivos y ETS 2024
Tema 3-3 Métodos anticonceptivos y ETS 2024
 
Septima-Sesion-Ordinaria-del-Consejo-Tecnico-Escolar-y-el-Taller-Intensivo-de...
Septima-Sesion-Ordinaria-del-Consejo-Tecnico-Escolar-y-el-Taller-Intensivo-de...Septima-Sesion-Ordinaria-del-Consejo-Tecnico-Escolar-y-el-Taller-Intensivo-de...
Septima-Sesion-Ordinaria-del-Consejo-Tecnico-Escolar-y-el-Taller-Intensivo-de...
 
El espiritismo desenmascarado.pdf. Lec. 10
El espiritismo desenmascarado.pdf. Lec. 10El espiritismo desenmascarado.pdf. Lec. 10
El espiritismo desenmascarado.pdf. Lec. 10
 

Java ArrayList Iterator

  • 1. Desarrollar un programa que simule el interfaz software de entrada a una tarjeta de red siguiendo las siguientes especificaciones. La entrada está implementada mediante dos tipos de buffers. Un primer buffer donde van entrando todas las tramas según van llegando, que tiene un espacio máximo de 4 tramas. Y un segundo buffer de espacio ilimitado que tiene tres puertos (entendiendo por puertos, zonas de almacenamiento distintas). La entrada debe implementar un mecanismo para mostrar el contenido de sus buffers. Cuando el primer buffer se llene, enviará al segundo buffer de forma automática las primeras 2 tramas con mayor prioridad. Y así sucesivamente. Existen distintos tipos de tramas, aunque de momento solo tendremos en cuenta las tramas TCP y UDP (en el futuro puede que tengamos que soportar más). Ahora bien, todas las tramas sean del tipo que sean, contienen el puerto al que van dirigidas (1, 2 o 3), su prioridad (de 1 a 10, siendo 1 la mayor prioridad) y el contenido de la trama. Nota: ante dos tramas con el mismo valor de prioridad, tendrá más prioridad aquella cuyo contenido esté por delante siguiendo el orden del abecedario. Por último, crearemos una clase Actividad7 donde instanciaremos el sistema de entrada a la tarjeta de red y le enviaremos 6 tramas de distintos tipos y con puertos y prioridades aleatorias. Una vez se hayan enviado 5 tramas, se mostrará el contenido de los buffers del sistema de entrada. Realizar previamente el Diagrama de Clases UML. OrdenarTramaPorPrioridad.java import java.util.Comparator; public class OrdenarTramaPorPrioridad implements Comparator<Object>{ //Ordena las tramas primero por prioridad y después por contenido. public int compare (Object obj1, Object obj2){ Trama trama1 = (Trama)obj1; Trama trama2 = (Trama)obj2; if(trama1.getPrioridad() == trama2.getPrioridad()){ return trama1.getContenido().compareToIgnoreCase(trama2.getContenido()); }else{ return trama1.getPrioridad() - trama2.getPrioridad(); } } }//Fin Clase bitCoach::Juan Bautista Cascallar Lorenzo::Página 1
  • 2. Trama.java public class Trama { //ATRIBUTOS private int puerto; // 1, 2 o 3 private int prioridad; //De 1 (máx) a 10 (mín) String contenido = "VACIO"; //Constructor public Trama (int p, int pri, String co){ puerto = p; prioridad = pri; contenido = co; } //SETTERS public void setPuerto(int param){ puerto = param; } public void setPrioridad(int param){ prioridad = param; } public void setContenido(String param){ contenido = param; } //GETTERS public int getPuerto(){ return puerto; } public int getPrioridad(){ return prioridad; } public String getContenido(){ return contenido; } } tramaUDP.java public class tramaUDP extends Trama{ private String id = "Soy trama TCP"; //Constructor public tramaUDP(int p, int pri, String co){ super(p,pri,co); } public String getId(){ return id; } } tramaTCP.java public class tramaTCP extends Trama{ private String id = "Soy trama TCP"; //Constructor public tramaTCP(int p, int pri, String co){ super(p,pri,co); } public String getId(){ return id; } } bitCoach::Juan Bautista Cascallar Lorenzo::Página 2
  • 3. Buffer1.java import java.util.ArrayList; import java.util.Iterator; import java.util.Collections; public class Buffer1 { //Atributos private ArrayList<Object> buffer01 = new ArrayList<Object>(); public void agregarTrama(Object trama){ buffer01.add(trama); ordTramaPrioridad(); } public Object extraerTramaMasPrioritaria(){ Object trama = buffer01.get(0); buffer01.remove(0); return trama; } public int getTamanio(){ return buffer01.size(); } public void ordTramaPrioridad(){ Collections.sort(buffer01, new OrdenarTramaPorPrioridad()); } public void mostrarContenido(){ System.out.println("==========================================================="); System.out.println("CONTENIDO DEL PRIMER BUFFER [BUFFER1]"); System.out.println("==========================================================="); Iterator<Object> it = buffer01.iterator(); while(it.hasNext()){ Object obj; obj = it.next(); if(obj.getClass().getName().equals("tramaTCP")){ tramaTCP tcpAux; tcpAux = (tramaTCP)obj; System.out.println("--Trama TCP-----------------------"); System.out.println("PUERTO: " + tcpAux.getPuerto()); System.out.println("PRIORIDAD: " + tcpAux.getPrioridad()); System.out.println("CONTENIDO: " + tcpAux.getContenido()); System.out.println("--Trama TCP-----------------------"); }else{ tramaUDP udpAux; udpAux = (tramaUDP)obj; System.out.println("--Trama UDP-----------------------"); System.out.println("PUERTO: " + udpAux.getPuerto()); System.out.println("PRIORIDAD: " + udpAux.getPrioridad()); System.out.println("CONTENIDO: " + udpAux.getContenido()); System.out.println("--Trama UDP-----------------------"); } } } }//Fin clase. bitCoach::Juan Bautista Cascallar Lorenzo::Página 3
  • 4. Buffer2.java import java.util.ArrayList; import java.util.Iterator; public class Buffer2 { private ArrayList<Object> puerto01 = new ArrayList<Object>(); private ArrayList<Object> puerto02 = new ArrayList<Object>(); private ArrayList<Object> puerto03 = new ArrayList<Object>(); //Otros métodos public void agregarTrama(Object trama){ Trama obj = (Trama)trama; switch(obj.getPuerto()){ case 1: puerto01.add(trama); break; case 2: puerto02.add(trama); break; case 3: puerto03.add(trama); break; } }//Fin function public void mostrarContenido(){ System.out.println("==========================================================="); System.out.println("CONTENIDO DEL SEGUNDO BUFFER [BUFFER2]"); System.out.println("==========================================================="); System.out.println("Tramas en Puerto 01"); Iterator<Object> iterador = puerto01.iterator(); leerPuerto(iterador); System.out.println("Tramas en Puerto 02"); iterador = puerto02.iterator(); leerPuerto(iterador); System.out.println("Tramas en Puerto 03"); iterador = puerto03.iterator(); leerPuerto(iterador); } private void leerPuerto(Iterator<Object> it){ while(it.hasNext()){ Object obj; obj = it.next(); if(obj.getClass().getName() == "tramaTCP"){ tramaTCP tcpAux; tcpAux = (tramaTCP)obj; System.out.println("--Trama TCP-----------------------"); System.out.println("PUERTO: " + tcpAux.getPuerto()); System.out.println("PRIORIDAD: " + tcpAux.getPrioridad()); System.out.println("CONTENIDO: " + tcpAux.getContenido()); System.out.println("--Trama TCP-----------------------"); }else{ tramaUDP udpAux; udpAux = (tramaUDP)obj; System.out.println("--Trama UDP-----------------------"); System.out.println("PUERTO: " + udpAux.getPuerto()); System.out.println("PRIORIDAD: " + udpAux.getPrioridad()); System.out.println("CONTENIDO: " + udpAux.getContenido()); System.out.println("--Trama UDP-----------------------"); } } } }//Fin clase bitCoach::Juan Bautista Cascallar Lorenzo::Página 4
  • 5. InterfazRed.java public class InterfazRed { //Atributos private Buffer1 bf1 = new Buffer1(); private Buffer2 bf2 = new Buffer2(); public void agregarTrama(Object trama){ if(bf1.getTamanio() < 4){ bf1.agregarTrama(trama); }else{ //Extraer las dos primeras tramas del primer buffer. bf2.agregarTrama(bf1.extraerTramaMasPrioritaria()); bf2.agregarTrama(bf1.extraerTramaMasPrioritaria()); bf1.agregarTrama(trama); } }//Fin function public void mostrarBuffers(){ bf1.mostrarContenido(); bf2.mostrarContenido(); } }//Fin Clase TestTramas.java public class TestTramas { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub InterfazRed interfaz = new InterfazRed(); //Creamos las seis tramas (puerto,prioridad 1+..10-,datos) /* tramaTCP TCP1 = new tramaTCP(1,1,"d"); tramaTCP TCP2 = new tramaTCP(2,1,"c"); tramaTCP TCP3 = new tramaTCP(3,2,"b"); */ tramaTCP TCP1 = new tramaTCP((int) (Math.random()*3+1),(int) (Math.random()*10+1),"a"); tramaTCP TCP2 = new tramaTCP((int) (Math.random()*3+1),(int) (Math.random()*10+1),"c"); tramaTCP TCP3 = new tramaTCP((int) (Math.random()*3+1),(int) (Math.random()*10+1),"e"); //--- /* tramaUDP UDP1 = new tramaUDP(1,1,"a"); tramaUDP UDP2 = new tramaUDP(2,2,"b"); tramaUDP UDP3 = new tramaUDP(3,2,"a"); */ tramaUDP UDP1 = new tramaUDP((int) (Math.random()*3+1),(int) (Math.random()*10+1),"e"); tramaUDP UDP2 = new tramaUDP((int) (Math.random()*3+1),(int) (Math.random()*10+1),"e"); tramaUDP UDP3 = new tramaUDP((int) (Math.random()*3+1),(int) (Math.random()*10+1),"e"); interfaz.agregarTrama(TCP1); interfaz.agregarTrama(TCP2); interfaz.agregarTrama(TCP3); interfaz.agregarTrama(UDP1); interfaz.agregarTrama(UDP2); interfaz.agregarTrama(UDP3); interfaz.mostrarBuffers(); }//Fin Function }//Fin Clase bitCoach::Juan Bautista Cascallar Lorenzo::Página 5
  • 6. Diagrama de Clases UML bitCoach::Juan Bautista Cascallar Lorenzo::Página 6