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
| | | |-+  Chat en Java con Sockets
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Chat en Java con Sockets  (Leído 2,354 veces)
Elliot123

Desconectado Desconectado

Mensajes: 4


Ver Perfil
Chat en Java con Sockets
« en: 3 Mayo 2018, 03:37 am »

Hola buenas, estoy haciendo una aplicacion en java para chat con sockets, pero he tenido un par de inconvenientes, ya probe el cliente y el servidor en la misma maquina y funcionan correctamente, pero tengo un problema al ejecutar la aplicacion en otro ordenador, usando ese ordenador y otro en donde, ejecuto el servidor y un cliente al mismo tiempo y en el otro ejecuto solo el cliente, al enviar mensajes desde el primer pc que mencione los mensajes llegan correctamente y tal pero cuando intento enviar un mensaje desde el ordenador que solo tiene el cliente este me lanza una excepcion del tipo Connect Exception
que aparece de la siguiente forma
Código:
java.net.ConnectException : Connection time out : connect
Aca dejare el codigo fuente tanto del cliente como del servidor




Código
  1. Cliente
  2. -------------
  3.  
  4. private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                        
  5.        try
  6.        {
  7.            Socket cliente = new Socket("192.168.14.1",9999);
  8.  
  9.            Mensaje mensaje = new Mensaje();
  10.  
  11.            mensaje.setContacto(jContacto.getText());
  12.  
  13.            mensaje.setIp(ip.getText());
  14.  
  15.            mensaje.setTexto(escritura.getText());
  16.  
  17.            ObjectOutputStream flujo_salida = new ObjectOutputStream(cliente.getOutputStream());
  18.  
  19.            flujo_salida.writeObject(mensaje);
  20.  
  21.            cliente.close();
  22.  
  23.            flujo_salida.close();
  24.  
  25.            /*
  26.             DataOutputStream flujo_salida = new DataOutputStream(cliente.getOutputStream());
  27.            
  28.             flujo_salida.writeUTF(jTextArea2.getText());
  29.            
  30.             flujo_salida.close();*/
  31.  
  32.  
  33.        } catch (IOException ex){
  34.            JOptionPane.showMessageDialog(null,ex);
  35.        } catch(Exception e){
  36.            JOptionPane.showMessageDialog(null,e);
  37.        }
  38.    }                                        
  39.  
  40.  
  41. Servidor
  42. ----------
  43.  
  44.  
  45.    public FrmServidor() {
  46.        initComponents();
  47.  
  48.        Thread hilo = new Thread(this);
  49.  
  50.        hilo.start();
  51.    }
  52.  
  53.  
  54.    public void run() {
  55.  
  56.        try {
  57.  
  58.          ServerSocket servidor = new ServerSocket(9999);
  59.  
  60.          String contacto,texto,ip;
  61.  
  62.          Mensaje mensaje;
  63.  
  64.          while(true){
  65.  
  66.            Socket socket = servidor.accept();
  67.  
  68.            ObjectInputStream flujo_entrada = new ObjectInputStream(socket.getInputStream());
  69.  
  70.            mensaje = (Mensaje) flujo_entrada.readObject();
  71.  
  72.            contacto = mensaje.getContacto();
  73.  
  74.            texto = mensaje.getTexto();
  75.  
  76.            ip = mensaje.getIp();
  77.            /*DataInputStream flujo_entrada = new DataInputStream(socket.getInputStream());
  78.              
  79.             String mensaje = flujo_entrada.readUTF();
  80.            
  81.             jTextArea1.append("\n" + mensaje);*/
  82.            jTextArea1.append("\n" + contacto + " : " + texto + " para " + ip);
  83.  
  84.            //Creamos el puente donde se redireccionara el mensaje hacia el destinatario
  85.            Socket destinatario = new Socket(ip,9090);
  86.  
  87.            ObjectOutputStream entrada = new ObjectOutputStream(destinatario.getOutputStream());
  88.  
  89.            entrada.writeObject(mensaje);
  90.  
  91.            entrada.close();
  92.  
  93.            destinatario.close();
  94.  
  95.            socket.close();
  96.  
  97.          }
  98.  
  99.        } catch (IOException ex) {
  100.            Logger.getLogger(FrmServidor.class.getName()).log(Level.SEVERE, null, ex);
  101.        } catch (ClassNotFoundException ex) {
  102.            Logger.getLogger(FrmServidor.class.getName()).log(Level.SEVERE, null, ex);
  103.        }
  104.    }
  105.  
Nota: En la clase donde encapsulo el mensaje a enviar implemente la interfaz Serializable

Al igual que en el servidor implemente Runnable


Espero y puedan ayudarme con este problema dandome ideas de como soluciinarlo

Gracias de ante mano,  :)

  


· Los códigos deben ir en etiquetas GeSHi
· Los temas van en su respectivo subforo (movido a java)
>aquí las reglas del foro
-Engel Lex


« Última modificación: 3 Mayo 2018, 03:50 am por engel lex » En línea

srWhiteSkull


Desconectado Desconectado

Mensajes: 444



Ver Perfil WWW
Re: Chat en Java con Sockets
« Respuesta #1 en: 3 Mayo 2018, 17:30 pm »

Si el cliente se encuentra fuera de la red local tienes que asignarle la IP pública del servidor, y también asegurarte que los puertos estén abiertos (desde el router hasta el propio srvidor, firewalls, etc).

La excepción indica que el tiempo de conexión se ha pasado y sin éxito en ésta, que no pudo conectar. En resumen esto puede deberse a que el servidor no es visible para el cliente por las típicas causas, dirección o puerto incorrectos, o puertos del servidor cerrados (sobre todo cuando el acceso es desde fuera de la red local).


En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Creacion de Chat con sockets y mas de un cliente
Programación Visual Basic
Banchan 3 4,795 Último mensaje 7 Julio 2008, 02:00 am
por Banchan
Chat en Java [Sockets]
Java
Debci 2 12,605 Último mensaje 27 Agosto 2009, 19:26 pm
por egyware
CODIGO FUENTE DE UN CHAT CON SOCKETS
.NET (C#, VB.NET, ASP)
syst 0 6,878 Último mensaje 8 Junio 2012, 12:15 pm
por syst
Haciendo un chat por sockets
Programación C/C++
ipmicrobious 1 2,206 Último mensaje 3 Diciembre 2016, 16:03 pm
por ivancea96
Problemas con el scroll de mi chat en jquery y sockets
Desarrollo Web
Ali Baba 0 1,822 Último mensaje 27 Julio 2018, 03:48 am
por Ali Baba
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines