Hola a todos!!
Escribi esto mismo en lawebdelprogramador, en programmersheaven, sun y no se cual es la respuesta:
Desarrolle una clase que lanza hilos. Cada uno de esos hilos lanza dos hilos sincronizados (se comunican entre si mediante una cola). Cada uno de estos dos hilos son dos servidores que atienden clientes por puertos distintos. Por lo tanto, por parametro del constructor le mando los puertos por los cuales deben escuchar. El problema es q por el momento estoy largando dos hilos q a su vez largan dos hilos sincronizados cada uno. Bueno, lo q esta ocurriendo es q efectivamente estoy largando dos pero luego, cada uno de los hilos escucha por el mismo puerto. Como me doy cuenta??? porque tiro mensajes por pantalla ya que debuggear esto es casi imposible porque se va de hilo en hilo y uno no sabe donde esta.
Voy a pedar algo de codigo:
JAdministradorTranServers.java:
(esta es la clase que larga el hilo y le paso dos puertos distintos)
new JTranServerThread(listaPuertos.getItem(i).getIdentificador(), puerto);
JTranServerThread.java:
(esta es el hilo que larga los dos hilos sincronizados)
public class JTranServerThread extends Thread
{
/** Puerto por el cual escuchara el JServidorDataEntry */
private int puertoDataEntry = 0;
/** Puerto por el cual escuchara el JServidorDataEntry */
private int puertoPVC = 0;
/** @param puertoDataEntry Puerto por el cual escuchara el servidor del Data Entry
* @param puertoPVC Puerto por el cual se conectara al PVC*/
public JTranServerThread(int puertoDataEntry, int puertoPVC)
{
this.puertoDataEntry = puertoDataEntry;
this.puertoPVC = puertoPVC;
start();
}
/** Metodo que lanzara una thread */
public void run()
{
JServidorDataEntry servidorDataEntry = new JServidorDataEntry(puertoDataEntry);
new JServidorPVC(servidorDataEntry, puertoPVC);
System.out.println("Estoy en el run de JServerThread");
System.out.println("Puerto PVC: " + puertoPVC);
System.out.println("Puerto Data Entry: " + puertoDataEntry);
}
}
Bueno, lo q esta pasando, es que servidorDataEntry es largado dos veces efectivamente pero ambas veces escucha por el mismo puerto. Lo mismo ocurre con JServidorPVC.
Si alguien sabe q pasa por favor escucho ideas. Si en vez de "extender" a Thread, debo implementar "runneable" lo hago, pero necesito AYUDAAAA
Salu2!!!!!!!!!!!