Descarga de ficheros: PROGJAVA28.rar

 

 

import com.ms.wfc.app.*;

import com.ms.wfc.core.*;

import com.ms.wfc.ui.*;

import com.ms.wfc.html.*;

 

import java.net.*; //incorporamos los recursos de red

import java.io.*; //incorporamos los recursos de entrada y salida de datos

 

 

public class Form1 extends Form

{

                int p_e, p_s, id_cliente;//Declaramos los números enteros: puerto de entrada, puerto de salida y identificador de cliente

                String direcciones[][];//Declaramos una matriz de direcciones bidimensional que contendrá las direcciones y los nombres de los clientes

                DatagramPacket paq_recibir, paq_enviar;//Declaramos los paquetes de entrada de datos y de salida de datos

                DatagramSocket con_recibir, con_enviar;//Declaramos las conexiones de entrada y de salida de datos

                Thread esperar;//hilo que ejecutará la función de recibir y enviar paquetes

                public Form1()

                {

                               initForm();              //inicializamos el formulario

                               //Inicializamos las variables   

                               p_e=6530;//inicializamos el puerto de entrada el 6530

                               p_s=6531;//y el puerto de salida el 6531 deben ser números menores de 65436.

                               edit3.setText(String.valueOf(p_e).toString());//escribimos los valores de los puertos de entrada y de salida

                               edit4.setText(String.valueOf(p_s).toString());

                               direcciones= new String[7][2];//es una matriz con nombres y direcciones

                               //Para cada elemento de la matriz introduzco el nombre (componente 0)y la dirección (Componente 1)

                               direcciones[0][0]="David C";direcciones[0][1]="192.168.1.118";

                               direcciones[1][0]="David M";direcciones[1][1]="129,137,163,182";

                               direcciones[2][0]="Marcos M";direcciones[2][1]="129,137,163,182";

                               direcciones[3][0]="Leila";direcciones[3][1]="129,137,163,182";

                               direcciones[4][0]="Jordi";direcciones[4][1]="129,137,163,182";

                               direcciones[5][0]="Alí";direcciones[5][1]="129,137,163,182";

                               direcciones[6][0]="David C";direcciones[6][1]="129,137,163,182";

                               label1.setBackColor(Color.fromCMYK(0,255,255,96));//Damos color rojo a la etiqueta como desconectado

                               label1.setForeColor(Color.WHITE);//El color de letra de la etiqueta el blanco

                               label1.setText("DESCONECTADO");

                               try

                               {

                                               edit1.setText(InetAddress.getLocalHost().toString());

                               }

                               catch(IOException ioe)

                               {

                               }             

                }

                public void actualizar_puertos()

                {

                               p_e=Integer.parseInt(edit3.getText());

                               p_s=Integer.parseInt(edit4.getText());

                               edit3.setEnabled(false);

                               edit4.setEnabled(false);

                               Conectar();

                }

                public void esperar_Paquetes()//Función que esperará los paquetes de datos

                {

                               while(true)

                               {

                                               try

                                               {

                                                               int longitud;//la información viaja en forma de bytes

                                                               byte array[]=new byte[50];//Creamos una matriz de bytes

                                                               paq_recibir=new DatagramPacket(array,array.length);//Creamos el paquete de recibir

                                                               con_recibir= new DatagramSocket(p_e);

                                                               con_recibir.receive(paq_recibir);//recibimos la información de la conexión y lo metemos en el paquete

                                                               String datos = new String(array);//Convertimos los datos en una cadena de texto

                                                               longitud=datos.length();//guardamos la longitud de los datos recibidos

                                                               recibir(datos);//Llamamos a la función recibir y le pasamos como parámetro: datos

                                               }

                                               catch(IOException ioe)

                                               {

                                               }

                               }

                }

               

                public void recibir(String paquete)

                {

                               int palabra=4;//fijo una variable para distinguir instrucciones y la inicializo a 4 por ejemplo

                               String dato = paquete;//Creo la cadena dato

                               if(dato.substring(0,5).equals("Reci_"))palabra=1;

                               if(dato.substring(0,5).equals("Cone_"))palabra=2;

                               if(dato.substring(0,5).equals("Desc_"))palabra=3;

                               switch(palabra)

                               {

                               case 1: break;

                               case 2: break;

                               case 3: break;

                               case 4: edit1.setText(edit1.getText()+"\n" + paq_recibir.getAddress().getHostName()+ " dice:"+"\n" + paq_recibir);//escribimos lo que recibe

                                                               break;

                               }

                }

               

                public class EnEspera extends Thread //Creamos un objeto hilo para ejecutar en paralelo la aplicación

                {

                               public void EnEspera()//El constructor de la clase

                               {

                               }

                               public void run()//Función que se realiza al ejecutarse el hilo

                               {

                                               esperar_Paquetes();

                               }

                }

                //Función Conectar

                private void Conectar()

                {

                               try

                               {

                                               con_enviar= new DatagramSocket(p_s);//Creamos la conexión para enviar

                                               con_recibir= new DatagramSocket(p_e);//Creamos la conexión para recibir

                               }

                               catch(SocketException se)

                               {

                               }

                               esperar = new EnEspera();

                               esperar.start();

                }

                private void Desconectar()

                {

                               if(esperar!=null)

                               {

                                               esperar.stop();

                                               esperar=null;

                               }

                }

                public void enviar(String texto, String direccion, int p_s)

                {

                               String t=texto;

                               String d=direccion;

                               int p=p_s;

                               try

                               {

                                               byte array[]=t.getBytes();

                                               paq_enviar= new DatagramPacket(array, array.length, InetAddress.getAllByName(d)[0],p);

                                               con_enviar.send(paq_enviar);

                               }

                               catch(IOException io)

                               {

                               }

                }

                public void dispose()

                {

                               super.dispose();

                               components.dispose();

                }

 

                private void Form1_click(Object source, Event e)

                {

                              

                }

 

                private void radioButton1_checkedChanged(Object source, Event e)

                {

                               if (radioButton1.getChecked())id_cliente=0;

                               actualizar_puertos();

                }

 

                private void radioButton2_checkedChanged(Object source, Event e)

                {

                               actualizar_puertos();

                               if (radioButton2.getChecked())id_cliente=1;

                }

 

                private void radioButton3_checkedChanged(Object source, Event e)

                {

                               if (radioButton3.getChecked())id_cliente=2;

                               actualizar_puertos();

                }

 

                private void radioButton4_checkedChanged(Object source, Event e)

                {

                               if (radioButton4.getChecked())id_cliente=3;

                               actualizar_puertos();

                }

 

                private void radioButton5_checkedChanged(Object source, Event e)

                {

                               if (radioButton5.getChecked())id_cliente=4;

                               actualizar_puertos();

                }

 

                private void radioButton6_checkedChanged(Object source, Event e)

                {

                               if (radioButton6.getChecked())id_cliente=5;

                               actualizar_puertos();

                }

 

                private void radioButton7_checkedChanged(Object source, Event e)

                {

                               if (radioButton7.getChecked())id_cliente=6;

                                               actualizar_puertos();

                }

 

                private void menuItem2_click(Object source, Event e)

                {

                               Conectar();

                               statusBar1.setText("Conectado");

                               label1.setBackColor(Color.GREEN);

                               label1.setForeColor(Color.BLACK);

                               label1.setText("CONECTADO");

                               actualizar_puertos();

                                              

                }

 

                private void menuItem3_click(Object source, Event e)

                {

                               Desconectar();

                               statusBar1.setText("Desconectado");

                               label1.setBackColor(Color.fromCMYK(0,255,255,96));

                               label1.setForeColor(Color.WHITE);

                               label1.setText("DESCONECTADO");

                               actualizar_puertos();

                }

 

                private void edit1_textChanged(Object source, Event e)

                {

                               actualizar_puertos();

                }

 

                private void menuItem5_click(Object source, Event e)

                {

                               actualizar_puertos();

                               Desconectar();

                               Application.exit();

                              

                                              

                }

 

                private void button1_click(Object source, Event e)

                {

                               actualizar_puertos();

                               String t;

                               t=edit2.getText();

                               edit1.setText(edit1.getText()+"\n"+"Yo le digo a " + direcciones[id_cliente][0]+"\n"+t);

                               edit2.setText("");

                               edit2.focus();

                               enviar(t,direcciones[id_cliente][1],p_s);

                }

 

                private void menuItem7_click(Object source, Event e)

                {

                               edit3.setEnabled(true);

                               edit4.setEnabled(true);

                }

 

                private void edit3_textChanged(Object source, Event e)

                {

                              

                                              

                }

 

                private void edit4_textChanged(Object source, Event e)

                {

                              

                }

 

                /**

                 * NOTE: The following code is required by the Visual J++ form

                 * designer.  It can be modified using the form editor.  Do not

                 * modify it using the code editor.

                 */

                Container components = new Container();

                Edit edit1 = new Edit();

                Edit edit2 = new Edit();

                Button button1 = new Button();

                RadioButton radioButton1 = new RadioButton();

                RadioButton radioButton2 = new RadioButton();

                RadioButton radioButton3 = new RadioButton();

                RadioButton radioButton4 = new RadioButton();

                RadioButton radioButton5 = new RadioButton();

                RadioButton radioButton6 = new RadioButton();

                RadioButton radioButton7 = new RadioButton();

                MainMenu mainMenu1 = new MainMenu();

                MenuItem menuItem1 = new MenuItem();

                MenuItem menuItem2 = new MenuItem();

                MenuItem menuItem3 = new MenuItem();

                MenuItem menuItem4 = new MenuItem();

                MenuItem menuItem5 = new MenuItem();

                StatusBar statusBar1 = new StatusBar();

                Label label1 = new Label();

                MenuItem menuItem6 = new MenuItem();

                MenuItem menuItem7 = new MenuItem();

                Label label2 = new Label();

                Edit edit3 = new Edit();

                Label label3 = new Label();

                Edit edit4 = new Edit();

 

                private void initForm()

                {

                               edit1.setLocation(new Point(8, 32));

                               edit1.setSize(new Point(304, 176));

                               edit1.setTabIndex(0);

                               edit1.setText("edit1");

                               edit1.setMultiline(true);

                               edit1.addOnTextChanged(new EventHandler(this.edit1_textChanged));

 

                               edit2.setLocation(new Point(8, 208));

                               edit2.setSize(new Point(216, 20));

                               edit2.setTabIndex(1);

                               edit2.setText("");

 

                               button1.setLocation(new Point(224, 208));

                               button1.setSize(new Point(88, 24));

                               button1.setTabIndex(2);

                               button1.setText("Enviar");

                               button1.addOnClick(new EventHandler(this.button1_click));

 

                               radioButton1.setLocation(new Point(320, 8));

                               radioButton1.setSize(new Point(160, 24));

                               radioButton1.setTabIndex(9);

                               radioButton1.setText("David C");

                               radioButton1.addOnCheckedChanged(new EventHandler(this.radioButton1_checkedChanged));

 

                               radioButton2.setLocation(new Point(320, 40));

                               radioButton2.setSize(new Point(160, 24));

                               radioButton2.setTabIndex(8);

                               radioButton2.setText("David M");

                               radioButton2.addOnCheckedChanged(new EventHandler(this.radioButton2_checkedChanged));

 

                               radioButton3.setLocation(new Point(320, 72));

                               radioButton3.setSize(new Point(160, 24));

                               radioButton3.setTabIndex(7);

                               radioButton3.setText("Marcos M");

                               radioButton3.addOnCheckedChanged(new EventHandler(this.radioButton3_checkedChanged));

 

                               radioButton4.setLocation(new Point(320, 104));

                               radioButton4.setSize(new Point(160, 24));

                               radioButton4.setTabIndex(6);

                               radioButton4.setText("Leila");

                               radioButton4.addOnCheckedChanged(new EventHandler(this.radioButton4_checkedChanged));

 

                               radioButton5.setLocation(new Point(320, 136));

                               radioButton5.setSize(new Point(160, 24));

                               radioButton5.setTabIndex(5);

                               radioButton5.setText("Jordi");

                               radioButton5.addOnCheckedChanged(new EventHandler(this.radioButton5_checkedChanged));

 

                               radioButton6.setLocation(new Point(320, 168));

                               radioButton6.setSize(new Point(160, 24));

                               radioButton6.setTabIndex(4);

                               radioButton6.setText("Alí");

                               radioButton6.addOnCheckedChanged(new EventHandler(this.radioButton6_checkedChanged));

 

                               radioButton7.setLocation(new Point(320, 200));

                               radioButton7.setSize(new Point(160, 24));

                               radioButton7.setTabIndex(3);

                               radioButton7.setText("David C");

                               radioButton7.addOnCheckedChanged(new EventHandler(this.radioButton7_checkedChanged));

 

                               menuItem2.setText("Conectar");

                               menuItem2.addOnClick(new EventHandler(this.menuItem2_click));

 

                               menuItem3.setText("Desconectar");

                               menuItem3.addOnClick(new EventHandler(this.menuItem3_click));

 

                               menuItem4.setText("-");

 

                               menuItem5.setText("Salir");

                               menuItem5.addOnClick(new EventHandler(this.menuItem5_click));

 

                               menuItem1.setMenuItems(new MenuItem[] {

                                                                                                                 menuItem2,

                                                                                                                 menuItem3,

                                                                                                                 menuItem4,

                                                                                                                 menuItem5});

                               menuItem1.setText("Archivo");

 

                               statusBar1.setBackColor(Color.CONTROL);

                               statusBar1.setLocation(new Point(0, 240));

                               statusBar1.setSize(new Point(489, 16));

                               statusBar1.setTabIndex(10);

                               statusBar1.setText("Desconectado");

 

                               label1.setBackColor(new Color(192, 0, 0));

                               label1.setLocation(new Point(8, 8));

                               label1.setSize(new Point(152, 16));

                               label1.setTabIndex(12);

                               label1.setTabStop(false);

                               label1.setText("");

 

                               menuItem7.setText("puertos");

                               menuItem7.addOnClick(new EventHandler(this.menuItem7_click));

 

                               menuItem6.setMenuItems(new MenuItem[] {

                                                                                                                 menuItem7});

                               menuItem6.setText("configuración");

 

                               mainMenu1.setMenuItems(new MenuItem[] {

                                                                                                                 menuItem1,

                                                                                                                 menuItem6});

                               /* @designTimeOnly mainMenu1.setLocation(new Point(328, 240)); */

 

                               this.setText("Comunicador Aula de informatica");

                               this.setAutoScaleBaseSize(new Point(5, 13));

                               this.setClientSize(new Point(489, 256));

                               this.setMenu(mainMenu1);

                               this.addOnClick(new EventHandler(this.Form1_click));

 

                               label2.setLocation(new Point(168, 8));

                               label2.setSize(new Point(24, 16));

                               label2.setTabIndex(15);

                               label2.setTabStop(false);

                               label2.setText("PE:");

 

                               edit3.setEnabled(false);

                               edit3.setLocation(new Point(192, 8));

                               edit3.setSize(new Point(40, 20));

                               edit3.setTabIndex(16);

                               edit3.setText("");

                               edit3.addOnTextChanged(new EventHandler(this.edit3_textChanged));

 

                               label3.setLocation(new Point(240, 8));

                               label3.setSize(new Point(24, 16));

                               label3.setTabIndex(13);

                               label3.setTabStop(false);

                               label3.setText("PS:");

 

                               edit4.setEnabled(false);

                               edit4.setLocation(new Point(264, 8));

                               edit4.setSize(new Point(40, 20));

                               edit4.setTabIndex(14);

                               edit4.setText("");

                               edit4.addOnTextChanged(new EventHandler(this.edit4_textChanged));

 

                               this.setNewControls(new Control[] {

                                                                                                              edit4,

                                                                                                              label3,

                                                                                                              edit3,

                                                                                                              label2,

                                                                                                              label1,

                                                                                                              statusBar1,

                                                                                                              radioButton7,

                                                                                                              radioButton6,

                                                                                                              radioButton5,

                                                                                                              radioButton4,

                                                                                                              radioButton3,

                                                                                                              radioButton2,

                                                                                                              radioButton1,

                                                                                                              button1,

                                                                                                              edit2,

                                                                                                              edit1});

                }

 

 

                //Función Principal

                public static void main(String args[])

                {

                               Application.run(new Form1());

                }

}