elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Introducción a Git (Primera Parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Java
| | | |-+  Cómo puedo hacer que un main abra dos consolas distintas?
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Cómo puedo hacer que un main abra dos consolas distintas?  (Leído 1,886 veces)
NikNitro!


Desconectado Desconectado

Mensajes: 1.309


Galletaaa!!!


Ver Perfil WWW
Cómo puedo hacer que un main abra dos consolas distintas?
« en: 24 Mayo 2014, 12:45 pm »

Buenas, he estado buscando (aunque tampoco se como llamarlo exactamente) la posibilidad de que un main abra dos consolas distintas.

Os explico, practicando con UDP he medio programado un chat. Esta es la interfaz primaria:
Código
  1. public class Chat {
  2. private Cliente  cl;
  3. private Servidor sv;
  4.  
  5. public Chat() {
  6. cl = new Cliente();
  7. sv = new Servidor();
  8. }
  9.  
  10. public Chat(String ipServ, int puertSend, int puertRec) {
  11. cl = new Cliente(ipServ, puertSend);
  12. sv = new Servidor(puertRec);
  13. }
  14.  
  15. public void Arrancar() {
  16. sv.Connect();
  17. cl.Connect();
  18. }
  19.  
  20. public static void main(String[] args) {
  21. // TODO Auto-generated method stub
  22. Chat chat = new Chat();
  23. chat.Arrancar();
  24. }
  25.  
  26. }
  27.  
  28.  

Pues bueno, en la consola me aparece el servidor conectando, pero no puede conectar. He pensado hacerlo concurrente, pero mi duda es si hay alguna forma de ejecutar cada trozo en una consola diferente (se que puedo llamarlos por separado, pero quiero saber si se puede).

Saludos ;)

EDITO: Aquí tengo el code en una concurrencia básica:
Código
  1. public class Chat {
  2. private Cliente  cl;
  3. private Servidor sv;
  4.  
  5. public Chat() {
  6. cl = new Cliente();
  7. sv = new Servidor();
  8. //////////////////////////////////////////////
  9. Arrancar();
  10. /////////////////////////////////////////////
  11. }
  12.  
  13. public Chat(String ipServ, int puertSend, int puertRec) {
  14. cl = new Cliente(ipServ, puertSend);
  15. sv = new Servidor(puertRec);
  16. }
  17.  
  18. ////////////////////////////////////////////////////// Procedimiento Arrancar() cambiado entero
  19. public void Arrancar() {
  20. sv.start();
  21. cl.start();
  22.  
  23. try {
  24. sv.join();
  25. cl.join();
  26. } catch (InterruptedException e) {
  27. // TODO Auto-generated catch block
  28. e.printStackTrace();
  29. }
  30. }
  31.  
  32. public static void main(String[] args) {
  33. // TODO Auto-generated method stub
  34. new Chat();
  35. }
  36.  
  37. }
  38.  
  39.  


« Última modificación: 24 Mayo 2014, 13:05 pm por NikNitro! » En línea

Nasty35

Desconectado Desconectado

Mensajes: 77


Ver Perfil
Re: Cómo puedo hacer que un main abra dos consolas distintas?
« Respuesta #1 en: 24 Mayo 2014, 13:10 pm »

¿Usando hilos(threads)?


En línea

Migugami

Desconectado Desconectado

Mensajes: 22


Systems Analyst


Ver Perfil
Re: Cómo puedo hacer que un main abra dos consolas distintas?
« Respuesta #2 en: 24 Mayo 2014, 14:07 pm »

Un chat debe ser multithreading para que se manejen las conexiones paralelamente y no se sature el servidor. No entiendo a qué te refieres con 'ejecutar cada trozo en una consola diferente'.
En línea

NikNitro!


Desconectado Desconectado

Mensajes: 1.309


Galletaaa!!!


Ver Perfil WWW
Re: Cómo puedo hacer que un main abra dos consolas distintas?
« Respuesta #3 en: 24 Mayo 2014, 15:05 pm »

En este caso no es aún un chat, sino más bien un servidor de eco (el cliente se conecta, le envía algo al servidor y éste le responde).

Yo puedo cojer y ejecutar el Servidor, luego el Cliente (con ip 127.0.0.1 y el mismo puerto) y que funcione (y estarán en diferentes consolas). Mi pregunta es si puedo hacer que aparezcan en diferentes consolas ejecutando un solo programa).

(Una consola será el Servidor y la otra el Cliente).

Salud
En línea

Migugami

Desconectado Desconectado

Mensajes: 22


Systems Analyst


Ver Perfil
Re: Cómo puedo hacer que un main abra dos consolas distintas?
« Respuesta #4 en: 24 Mayo 2014, 15:34 pm »

Por lo que tengo entendido, un proceso debe estar asociado a una única consola, por lo que no es posible desplegar dos consolas en una misma aplicación. Lo normal es usar un cliente para el servidor y otro para el cliente, además recuerda que en Java puedes jalar clases inclusive desde otro proyecto, para esto puedes agregar el proyecto cliente al build path del proyecto servidor, o empaquetarlo en un jar y agregarlo al build path.
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines