Java - No me funciona el codigo. Ayuda porfa

 
Vista:

No me funciona el codigo. Ayuda porfa

Publicado por Pacheco (1 intervención) el 15/11/2015 11:41:13
MAIN.JAVA

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
package Servidor;
 
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.Vector;
import javax.swing.JFrame;
import javax.swing.JTextArea;
import javax.swing.JTextField;
/*
 * Este ejemplo ilustra el funcionamiento de los sockets Streams orientados a conexión con
 * servidor concurrente (multi-thread).
 * @author David Lizcano
 */
 
 
public class Main{
 
// El servidor recibe una petición del cliente y envia una respuesta con una marca de tiempo.
// El cliente pide un texto al usuario por consola, y dicho texto se envía al servidor, que recibe el texto,
// indica la hora a la que lo ha recibido y se lo devuelve al cliente para que lo muestre por pantalla.
// Se emplea un servidor concurrente con un hilo por cada cliente
// El servidor necesita 1 argumento por consola:
//    <puerto al que enlazar el socket servidor de tipo stream del servidor>
// Nótese que no es necesario saber nada del proceso A (direccion ni puerto) gracias al método accept
// del ServerSocket
 
 
 
    public static void main(String[] args) {
 
      InputStreamReader is = new InputStreamReader(System.in);
      BufferedReader br = new BufferedReader(is);
      Integer puerto_B;
       try {
          System.out.println("Bienvenido al servidor concurrente.\n" +
                            "Introduzca el puerto en el que aceptar conexiones");
         String puertoB = br.readLine();
 
         if (puertoB.length() == 0)
            puertoB = "3000";          // puerto B por defecto;
         puerto_B = Integer.parseInt (puertoB);       //cambio de tipos necesario
         ServerSocket socketAceptador = new ServerSocket (puerto_B);
         while(true)
         {
         System.out.println("Esperando conexión.");
         Socket socketDatos = socketAceptador.accept(); //operacion bloqueante
         System.out.println("Conexión aceptada");
         // preparamos el flujo de datos sobre el que leer y escribir, tomandolo del socketDatos creado
         Thread hilo = new Thread(new HiloServidor(socketDatos));
         hilo.start();
         //fin del bucle y volvemos a aceptar dar servicio a otros clientes de forma concurrente
         } //end while
 
      } // end try
 
	 catch (Exception ex) {
            ex.printStackTrace( );
	 } //end catch
 
 
    }
 
     public static Vector socketsActivos = new Vector();
 
     private Object Socket;
{
 
            socketsActivos.addElement(Socket);
    }
 
    public void enviarATodos (String mensaje){
         Vector lista = socketsActivos;
    for(int i = 0; i < lista.size(); i++){
            Socket socketDatos = (Socket) lista.get(i);
        //enviar mensaje por socketDatos
    }
    }
}

HILOSERVIDOR.JAVA

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
package Servidor;
 
import static Servidor.Main.socketsActivos;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.net.Socket;
import java.util.Date;
import java.util.Vector;
 
 
/*
 * Hilo encargado de dar servicio a un cliente particular
 * @author david.lizcano
 */
class HiloServidor implements Runnable {
 
    Socket socketDatos;
    HiloServidor(Socket socketConectado){
    socketDatos = socketConectado;
    }
 
 
 
    public void run (){
   try {
 
     String mensaje = "";
     PrintWriter output = new PrintWriter(new OutputStreamWriter(socketDatos.getOutputStream()));
     BufferedReader input = new BufferedReader(new InputStreamReader(socketDatos.getInputStream()));
         // leemos una linea, con operacion bloqueante
     while (true){
         mensaje = input.readLine();
         Date marca_temporal = new Date();
         String marca = "Momento de Recepción = " + marca_temporal.toString() + ", datos = ";
         String respuesta = marca + mensaje;
         Thread.sleep (3000); // comprobamos que el hilo del cliente evita el bloqueo en la espera
         output.println(respuesta);
         output.flush();
       }
 
    }
 
 
   catch (Exception ex) {
            ex.printStackTrace( );
	 } //end catch
    }
 
}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder