Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Java Ii
Java Ii
JAVA II
Programacin en Java
Modulo 10: Construccin de GUI
Laboratorio Nacional de Informtica Avanzada A. C. 2007
El paquete java.awt
LANIA 2007
Contenedores
Es un espacio que almacena componentes Los componentes se agregan con el mtodo add(). Los dos principales tipos de contenedores son Window y Panel Un Window es una ventana que flota en la pantalla Un Panel es un contenedor que debe existe en el contexto de otro contenedor como una Ventana.
LANIA 2007
Frames
Son una subclase de ventanas Tienen un ttulo y sus esquinas pueden cambiar de tamao Inicialmente son invisibles
LANIA 2007
Frames
public static void main(String[] args) { // TODO code application logic here Frame miFrame = new Frame("Hola Mundo"); miFrame.setSize(300,300 ); miFrame.setVisible(true); }
LANIA 2007
Panel
Provee un espacio para componentes Ayuda que a otros paneles puedan tener sus propios atributos como su administrador de plantilla (layout)
LANIA 2007
El entorno Swing
El principal problema de AWT es que su apariencia dependa de la arquitectura sobre la que se ejecutaba. Swing est programado en Java puro. De esta forma las aplicaciones se vern idnticas no importando el sistema operativo. Swing se apoya en AWT
LANIA 2007 9
JFrames
public static void main(String[] args) { // TODO code application logic here JFrame miFrame = new JFrame("Hola Mundo"); miFrame.setSize(300,300 ); miFrame.setVisible(true); }
LANIA 2007
10
El manejador FlowLayout
Es el ms sencillo que vamos a encontrar y es el est por defecto en los Jpanel. Los componentes de van aadiendo lnea a lnea Si la lnea se llena se crea una nueva y se empieza a llenar. Los constructores son: FlowLayout(); FlowLayout(int aligment) FlowLayout(int aligment, int hgap, int vgap) El parmetro aligment tiene los valores FlowLayout.LEFT FlowLayout.RIGHT FlowLayout.CENTER
12
LANIA 2007
Ejemplo de un FlowLayout
public static void main(String[] args) { // TODO code application logic here JFrame a = new JFrame(); a.setLayout(new FlowLayout()); a.add(new JButton("OK")); a.add(new JButton("CANCEL")); a.add(new JButton("HOLA")); a.add(new JButton("Adios")); a.add(new JButton("Centro")); a.pack(); a.setVisible(true); }
LANIA 2007 13
Comportamiento
LANIA 2007
14
BorderLayout
Es el administrador por defecto de los Jframes. Divide la pantalla en cinco partes:
LANIA 2007
15
BorderLayout
Los componentes situados en las zonas North y South se expanden todo el ancho necesario Posteriormente las zonas East y West ocupan toda la altura que quede disponible Por ltimo la zona Center ocupar el resto Constructores: public BorderLayout() public BorderLayout(int hgap, int vgap)
LANIA 2007
16
Ejemplo
public static void main(String[] args) { // TODO code application logic here JFrame a = new JFrame(); a.setLayout(new BorderLayout()); a.add(new JButton("OK"),BorderLayout.NORTH); a.add(new JButton("CANCEL"),BorderLayout.SOUTH); a.add(new JButton("HOLA"),BorderLayout.EAST); a.add(new JButton("Adios"),BorderLayout.WEST); a.add(new JButton("Centro"),BorderLayout.CENTER); a.pack(); a.setVisible(true); } LANIA 2007
17
Comportamiento
LANIA 2007
18
GridLayout
Este administrador establece un sistema de filas y columnas permitiendo poner un componente dentro de cada casilla. No debemos indicar la posicin del componente. Se aaden secuencialmente
Constructores: Public GridLayout(int rows, int cols) Public GridLayout(int rows, int cols, int hgap, int vgap)
LANIA 2007 19
Ejemplo
public static void main(String[] args) { // TODO code application logic here JFrame a = new JFrame(); a.setLayout(new GridLayout(2,3)); a.add(new JButton("OK")); a.add(new JButton("CANCEL")); a.add(new JButton("HOLA")); a.add(new JButton("Adios")); a.add(new JButton("Centro")); a.pack(); a.setVisible(true); }
LANIA 2007 20
Comportamiento
LANIA 2007
21
Programacin en Java
Modulo 11: Manejo de Eventos
Laboratorio Nacional de Informtica Avanzada A. C. 2007
Conceptos bsicos
Un evento se produce cuando un usuario realiza una accin a nivel de la interfaz grfica
Pulsa un botn Mueve el mouse en una regin Pulsa una tecla
Eventos
Existen una gran variedad de clases de eventos para describir las diferentes categoras de acciones de usuario
LANIA 2007
24
Event source
Event source es el generador de un evento Pulsar un componente Jbutton con el ratn genera un evento de tipo ActionEvent con el botn como source. La instancia ActionEvent es un objeto que contiene informacin sobre los eventos que acaban de ocurrir. Sus mtodos publc getActionCommand(): retorna el nombre del comando asociado con la accin public getModifiers(): retorna los modificadores capturados durante la accin que ha generado el evento
LANIA 2007
25
Gestor de eventos
Un gestor de eventos (event handler) es un mtodo que recibe un objeto evento Un gestor de eventos es cualquier clase que herede de AWTEvent
LANIA 2007
26
Modelo de delegacin
Los eventos se enva al componente que los ha originado Cada componente debe tener registradas una o ms clases llamadas escuchas (listeners) Los listeners contienen gestores de eventos que pueden recibir y procesar un evento El gestor de eventos puede estar en un objeto totalmente separado del componente
LANIA 2007
27
28
Ejemplo
import javax.swing.*; public class Pulsame extends JFrame{ private JButton btnOK; /** Creates a new instance of Pulsame */ public Pulsame() { super("Plsame"); btnOK = new JButton("OK"); btnOK.addActionListener(new btnOKActionListener()); add(btnOK); pack(); setVisible(true); } }
LANIA 2007
29
Ejemplo
import java.awt.event.*; public class btnOKActionListener implements ActionListener{ private int contador = 0; public void actionPerformed(ActionEvent e) { contador++; System.out.println("El botn ha sido pulsado "+contador +" veces"); }
LANIA 2007
30
Programacin en Java
Modulo 12: Aplicaciones basadas en GUI Laboratorio Nacional de Informtica Avanzada A. C. 2006
Swing
La interfaz Swing es el GUI que nos ofrece Java que consta de 9 paquetes con centenares de clases e interfaces La clase javax.swing.Jcomponent es la clase superior de toda la jerarqua de clases swing.
LANIA 2007
32
LANIA 2007
33
ndice visual
LANIA 2007
34
Controles bsicos
ndice visual
JButton
LANIA 2007
35
ndice visual
Pantallas no editables
LANIA 2007
36
ndice visual
Pantallas editables o informacin formateada
LANIA 2007
37
LANIA 2007
38
JFrame
Una JFrame es la clase que representa la ventana en la que se ejecutan las aplicaciones grficas en Java. El procedimiento usual es crear una clase nueva que herede de JFrame.. Normalmente los JFrames se utilizan como contenedores primarios, es decir, no estn contenidos dentro de otros contenedores. A un frame se le suele poner un panel principal a partir del cual se organizan los dems elementos. Para colocar este panel principal se usa el mtodo: public void setContentPane(Cantainer contentPane)
LANIA 2007 39
JPanel
Un JPanel es una ventana invisible sobre las que se sitan y organizan los elementos en la ventana. Podemos insertar cualquier tipo de componentes dentro de un panel, incluyendo otros paneles. Esta facilidad se hace imprescindible a la hora de crear interfaces grficas complejas en las que haya que usar diferentes Layout Managers El procedimiento habitual para poner un panel consiste en construirlo primero, aadir los componentes que se desee y luego se insertarlo en el contenedor adecuado. Consta de ms de 293 mtodos heredados de JComponent, Container y Component, aparte de los heredados de Object. De entre todas estas operaciones, destacaremos las siguientes heredadas de Container: public JPanel(): constructora; public JPanel(LayoutManager layout): crea un nuevo JPanel con el administrados de diseo que se le pasa; public Component add(Component comp): es el mtodo usado para aadir componentes al panel. Devuelve el mismo componente que se le pasa; public setLayout(Layout Manager l): establece el administrador de diseo dado; public void remove(Component c): elimina el componente
40
LANIA 2007
Canvas
Un Canvas es una tela rectangular en la que pintamos el texto o dibujos lo que queremos. Funciona exactamente como un JPanel (aunque no es un contenedor). Este objeto se puede utilizar para las tcnicas de doble buffering para evitar los efectos de parpadeo, pintando primero sobre los canvas y luego aadiendo los canvas a la pantalla una vez que ya estn construidos. Una vez hemos dibujado el Canvas slo hemos de aadirlo como cualquier otro componente. El mtodo en el que programaremos lo que queremos dibujar siempre ser public void paint(Graphics g)
LANIA 2007 41
JButton
Son componentes que generan un evento cuando pulsamos sobre ellos. Una de las principales caractersticas de los JButton es que admiten que su contenido sea texto y/o Imgenes Algunos mtodos a destacar son:
public JButton(String texto): crea un botn con el texto dado en su interior; public JButton(Icon icono): crea un botn con el icono en su interior; public String getLabel(): devuelve la etiqueta del botn; public void setLabel(String label): establece una nueva etiqueta; public void setEnabled(boolean b): si b es false el botn quedar deshabilitado y no podr ser pulsado.
42
LANIA 2007
JLabel
Es un rea que permite mostrar un String, una imagen o ambos. Una JLabel (etiqueta) no reacciona a los eventos del usuario por lo que no puede obtener el focus del teclado. Se suele utilizar en combinacin con otros componentes que no disponen de la capacidad de mostrar su finalidad; por ejemplo, en combinado con un JTextField nos servira para indicar al usuario qu esperamos que introduzca en el mismo. Algunos mtodos importantes son:
public JLabel(String texto): crea una etiqueta con el texto dado; public JLabel(Icon icono): la crea con un icono; public JLabel(String text, int alineacionHorizontal): crea una etiqueta con un texto y una alineacin dados. sta ltima puede ser LEFT, CENTER, RIGHT,LEADING o TRAILING definidas en el interfaz SwingConstants; public void setText(String texto): establece la el texto que mostrar; public String getText(): devuelve el texto; public Icon getIcon(): devuelve el icono. LANIA 2007 43
JTextField
El JTextField es un campo de texto de una sola lnea. Hereda de la clase javax.swing.text.JTextComponent. Entre sus mtodos destacamos los siguientes:
public JTextField(int numCols): crea un JtextField que ocupa numCols columnas. Si el texto que contiene sobrepasa este tamao no se perder aunque no se pueda mostrar todo simultneamente; public JTextField(String texot, int numCols): igual que el anterior pero adems presentar un texto inicial; public void setFont(Font fuente): establece la fuente con la que se mostrar el texto; public String getText(): retorna su contenido; public String getSelectedText(): retorna el texto seleccionado en su interior; public void copy(): copia el texto seleccionado al portapapeles de sistema; public void cut(): igual que el anterior pero adems elimina el texto seleccionado; public void setEditable(boolean b): habilita o inhabilita la posibilidad de LANIA 2007 cambiar el texto contenido. 44
Ejemplo
LANIA 2007
45
Resultado
LANIA 2007
46
JTextArea
Es un campo de texto que admite un nombre indeterminado de filas y columnas. Podemos escribir en l todo lo que queramos, ya que si nos pasamos de las dimensiones que muestra, aparecen barras de desplazamiento para poder mostrar toda el rea de texto. Hereda de la clase javax.swing.JTextComponent igual que el JTextField por lo que, quitando las constructoras, tambin podremos aplicarle todos los mtodos comentados para el JTextField. Otros mtodos interesantes son:
public JTextArea(): crea una nueva rea de texto con 0 filas y columnas; public JTextArea(int filas, int columnas): la crea con el nmero de filas y colummnas dados; public JTextArea(String texto, int filas, int columnas): igual que el anterior pero con un texto inicial; public int getRows(): devuelve el nmero de filas; public int getColumns(): devuelve el nmero de columnas; public void append(String texto): concatena el texto al final del texto ya existente en la JTextArea; public void insert(String texto, int posicion): inserta el texto en la posicin especificada
47
LANIA 2007
JCheckBox
Es un componente que puede estar seleccionado o no y que muestra su estado. Por convencin puede estar seleccionado cualquier nmero de JCheckBoxes. Su apariencia es la de un cuadrado pequeo que est vaco cuando no est seleccionado y muestra una x cuando lo est. Adems, puede mostrar un texto y/o imagen que indique su finalidad. Entre las operaciones de los JCheckBox destacamos: public JCheckBox(): crea un JCheckBox sin texto ni icono y que no est seleccionado; public JCheckBox(String texto, boolean seleccionado): lo crea con un texto asociado y un estado inicial; public boolean isSelected(): devuelve true si est seleccionado; public void setSelected(boolean b): lo selecciona si b es true y lo marca como no seleccionado si es false; public String getText(): nos devuelve el texto asociado al JCheckBox. Esta operacin reemplaza a getLabel que ha pasado a ser deprecated; public void setEnabled(boolean b): permite habilitar o deshabilitar el componente para que puede ser utilizable o no por el usuario.
LANIA 2007
48
JRadioButton y ButtonGroup
Con la clase JRadioButton junto con la clase ButtonGroup construimos una serie de casillas de verificacin que estn agrupadas de manera que slo puede seleccionarse una y que el hecho de marcar una implique desmarcar las otras. Mtodos a destacar de JRadioButton:
public JRadioButton(): crea un JRadioButton que no est seleccionado; public JRadioButton(String texto, boolean seleccionado): lo crea con un estado de seleccin inicial y un texto asociado; public boolean isSelected() public void setSelected(boolean b) public String getText() public void setEnabled(boolean b)
public ButtonGroup(): crea un nuevo ButtonGroup; public void add(AbstractButton b): es posible aadir cualquier componente que herede de AbstractButton. Si se aade ms de un botn seleccionado, slo el primero prevalecer LANIA 2007 este estado y los dems quedarn desactivados. 49 en
JComboBox
Es una lista desplegable de la que slo se puede elegir una opcin. Destacamos las siguientes operaciones: public JComboBox(): crea un JComboBox vaco; public JComboBox(Object[] items): lo crear a partir de un array de objetos que contiene elementos; public JComboBox(Vector items): obtiene los elementos del Vector; public void addItem(Object item): aade un nuevo item al JComboBox; public Object getItem(int indice): retorna el objeto que est situado en la posicin indice; public int getSelectedIndex(): devuelve el ndice del item seleccionado; public Object getSelectedItem(): devuelve el objeto seleccionado.
50
LANIA 2007
JList
La JList es una lista sobre la que podemos ver y seleccionar ms de un elemento simultneamente. En caso de que haya ms elementos de los que se pueden visualizar simultneamente a causa de las dimensiones de la lista, aparecer una barra de desplazamiento vertical. Mtodos relevantes: public JList(): crea una JList vaca; public JList(Object[] listaItems): la crea con los items contenidos en el array de objetos; public JList(Vector listaItems): la crea con los elementos del Vector; public int getSelectedIndex(): devuelve el ndice del primer elemento seleccionado (-1 si no hay ninguno); public int[] getSelectedIndices(): devuelve un array con los ndices que estn seleccionados; public Object getSelectedValue(): da la referencia al objeto seleccionado; public Object[] getSelectedValues(): devuelve un array con los Object seleccionados.
51
LANIA 2007
Menes
Entendemos por men toda estructura superior de una aplicacin grfica que nos permite desplegar unas listas de operaciones que a su vez pueden contener otras listas de operaciones. La estructura bsica de un men se compone de JMenuBar (la barra superior) de la que cuelgan los mens (JMenu) a los que aadimos elementos (JMenuItem)
LANIA 2007 52
Elementos de Men
JMenuBar: public JMenuBar(): crea una nueva JMenuBar; public JMenu add(JMenu m): aade un JMenu a la MenuBar; public JMenu getMenu(int indice): devuelve el men asociado al ndice correspondiente. JMenuItem (superclase de JCheckBoxMenuItem, JradioButtonItem y JMenu): public JMenuItem(): crea un elemento de men vaco; public JMenuItem(String texto): lo crea con un string asociado; public JMenuItem(Icon icono): es creado con una imagen asociada que ser la que se muestre en el men; public void setEnabled(boolean b): indicamos si queremos que se pueda seleccionar o no. JMenu: public JMenu(String s): crea un nuevo JMenu que mostrar el string especificado; public JMenu add(JMenuItem menuItem): aade un JMenuItem al JMenu; public JMenu add(String s): crea un nuevo elemento de men con el texto especificado y lo pone al final de este JMenu; public void addSeparator(): aade una lnea horizontal separadora; public JMenuItem getItem(int pos): devuelve el JMenuItem que contiene la posicin indicada
53
LANIA 2007
Ejemplo
LANIA 2007
54
Resultado
LANIA 2007
55
LANIA 2007
56
Programacin en Java
Modulo 13: Hilos
58
Partes de un Thread
Un thread consta de:
CPU virtual Cdigo Datos
El cdigo puede ser compartido por multiples hilos independientes de los datos
Dos threads comparte el mismo cdigo cuando son instancias de la misma clase
Los datos pueden o no ser compartidos por multiples threads independiente del cdigo.
Dos threads comparten los datos cuando comparten el acceso a un objeto comn. LANIA 2007 59
Creando un Thread
El constructor de thread tiene como argumento un objeto que es una instancia de Runnable. Paso a seguir: Una clase A implementa la interfaz Runnable Se crea un objeto Thread Al constructor de Thread se le pasa el objeto A Se ejecuta el hilo con el mtodo start()
LANIA 2007
60
LANIA 2007
61
LANIA 2007
63
LANIA 2007
65
LANIA 2007
67
Programacin en Java
Modulo 14: Flujos avanzados de control de I/O Laboratorio Nacional de Informtica Avanzada A. C. 2007
Introduccin
La entrada-salida de Java se basa en el uso de flujos de datos tambin conocidos como streams. Los streams son unas secuencias de datos que viajan desde un origen a un destino a travs de una va de comunicacin. Estos flujos pueden ser de lectura y/o escritura y se pueden conectar a distintas fuentes Por ejemplo: Transferencias de memoria a memoria Sistemas de archivos Redes Otras formas de E/S. La idea principal es usar los flujos para leer y escribir datos en los distintos dispositivos a travs de sus mtodos para poder abstraernos de las caractersticas concretas de la va de comunicacin
69
LANIA 2007
Definiciones
Input Stream
Es el punto donde inicia el flujo de datos
Output Stream
Es el punto donde los datos son consumidos
Nodo
Un input stream o un output stream
LANIA 2007 70
LANIA 2007
InputStream
Permiten el acceso a un flujo de datos generador de bytes Los mtodos de lectura del stream bsico de lectura son: public int read(): Lee solo el siguiente byte y lo devuelve como un entero en el rango de (0-255). si devuelve un 1 quiere decir que hemos alcanzado el fin de la fuente de datos public int read(byte[] b) : Almacena los datos ledos en un arreglo. Retorna el nmero de bytes ledos o -1 si alcanz el fin de la fuente de datos int read(byte[] b, int desplazamiento, int longitud): Almacena un rango de bytes indicado en longitud a partir del desplazamiento y devuelve -1 si alcanz el fin de la fuente. Otros mtodos: public void close(): Cierra el stream public int available(): Nmero de bytes preparados para ser leidos public void skip(long numBytes): Descarta numBytes del flujo Operaciones de marcaje public boolean markSupported(): Indica si el flujo es marcable public void mark(int numBytes): Marca la posicin actual as como el nmero de bytes que se podrn leer despus de resituar el stream a dicha marca. public void reset(): Situa el stream a la posicin donde se puso la marca
72
LANIA 2007
OutputStream
Anlogamente al InputStream tenemos los mtodos de escritura siguientes: public void write(int b): Escribe el byte menos significativo de b. public void write(byte[] b). Escribe b.lenght del arreglo b. public void write(byte[] b, int desplazamiento, int longitud). Escribe longitud de bytes a partir de desplazamiento del vector b. Otros mtodos public void close(): Cierra el flujo public void flush(): Obliga a realizar la escritura sobre el flujo. Se garantiza un flush() implcito cuando se llama a close().
LANIA 2007
73
Reader
Permiten el acceso a un flujo de datos generador de char Los mtodos de lectura del stream bsico de lectura son: public int read(): Lee solo el siguiente carcter UNICODE.si devuelve un 1 quiere decir que hemos alcanzado el fin de la fuente de datos public int read(char[] cbuf) : Almacena los datos ledos en un arreglo. Retorna el nmero de caracteres ledos o -1 si alcanz el fin de la fuente de datos int read(char[] b, int desplazamiento, int longitud): Almacena un rango de caracteres indicado en longitud a partir del desplazamiento y devuelve -1 si alcanz el fin de la fuente. Otros mtodos: public void close(): Cierra el stream boolean ready(): Si el flujo est listo public void skip(long numChar): Descarta numChar del flujo Operaciones de marcaje public boolean markSupported(): Indica si el flujo es marcable public void mark(int numChar): Marca la posicin actual as como el nmero de caracteres que se podrn leer despus de resituar el stream a dicha marca. public void reset(): Situa el stream a la posicin donde se puso la marca
74
LANIA 2007
Writer
Mtodos de escritura siguientes: public void write(int c) public void write(byte[] cbuf). public void write(byte[] cbuf, int desplazamiento, int longitud). Public void write(String string); Public void write(String string, int offset, int lenght) Otros mtodos public void close(): Cierra el flujo public void flush(): Obliga a realizar la escritura sobre el flujo. Se garantiza un flush() implcito cuando se llama a close().
LANIA 2007
75
DataOutPutStream
Permite la escritura de tipos de datos primitivos en un canal. Mtodos relevantes: writeBoolean(boolean v) writeByte(int v) writeChar(int v) writeDouble(double v) writeFloat(float v) writeInt(int v) writeLong(long v) writeShort(int v) writeUTF(String str). Permite la escritura de cadenas
76
LANIA 2007
DataInPutStream
Permite la lectura de tipos de datos primitivos en un canal. Mtodos relevantes: boolean readBoolean() byte readByte() char readChar() double readDouble() float readFloat() int readInt() long readLong() short readShort() String readUTF(). Permite la lectura de cadenas
77
LANIA 2007
FileOutputStream
Sirve para escribir flujos a un archivo Constructores reelevantes:
FileOutputStream(String NombreArchivo) FileOutputStream(File Archivo)
LANIA 2007
78
FileInputStream
Sirve para leer flujos de un archivo Constructores relevantes:
FileInputStream(String NombreArchivo) FileOutputStream(File Archivo)
LANIA 2007
79
InputStreamReader
Funciona como puente para la lectura de bytes y la transformacin en caracteres utilizando una codificacin especial. Constructores reelevantes:
InputStreamReader(InputStream in) InputStreamReader(InputStream in, String encode)
LANIA 2007
80
OutputStreamWriter
Funciona como puente para la escritura de caracteres en un flujo que utiliza bytes de acuerdo a una codificacin especial. Constructores reelevantes:
OutputStreamWriter(OutputStream in) OutputStreamWriter(InputStream in, String encode)
LANIA 2007
81
Qu es serializacin?
Serializacin
Proceso de escribir un objeto vivo en un stream binario Deserializacin.- restaura el objeto del stream.
LANIA 2007
82
Si un objeto no es serializable:
Se lanza la excepcin java.io.NotSerializableException El proceso es abortado
LANIA 2007
83
LANIA 2007
84
Diferentes serializaciones
Java ofrece tres tipos de serializacin Serializacin por defecto
La clase debe ser elegible para serializacin
Externalizacin
No usa el mecanismo por defecto, la clase implementa la serializacin
LANIA 2007 85
Filtros de serializacin
La serializacin es proporcionada por dos clases filtro ObjectOutputStream
ObjectInputStream
LANIA 2007
86
Serializando objetos
1. Cree un OutputStream al destino 2. selo para crear un ObjectOutputStream 3. Llamar al mtodo writeObject() para serializar el objeto 4. Repetir el paso 3 por cada objeto a serializar 5. Cerrar el OutputStream
LANIA 2007
87
Deserializando objetos
1. Cree un InputStream a la fuente 2. selo para crear un ObjectInputStream 3. Llamar al mtodo readObject() para deserializar el objeto 4. Si es necesario realice un casting al tipo deseado 5. Repetir el paso 3 y 4 por cada objeto a deserializar 6. Cerrar el InputStream
LANIA 2007 88
System.in
isr
Objeto InputStream
teclado
InputStreamReader
recien creado
BufferedReader
recien creado
LANIA 2007
89
Salida a archivo
java.io.*;
Fichero fsr
isr
FileOutputStream
DataOutPutStream
float x
LANIA 2007
90
Programacin en Java
Modulo 15: Programacin en Red
TCP/IP
Modelo de comunicacin estndar en Internet La comunicacin se basa: Direccin IP: 120.32.1.3 Puerto: 80
Una aplicacin por Internet utiliza un puerto El puerto se encuentra en una mquina que tiene una direccin IP La comunicacin se a travs de puerto/IP
LANIA 2007 92
Socket
Un socket es una abstraccin que me permite conectarme a un puerto en un determinado host Los sockets en java pueden ser de tipo Servidor o Cliente
LANIA 2007
93
LANIA 2007
94
LANIA 2007
96