Pregunta: | 47508 - PROBLEMA CON SOCKETS |
Autor: | Javier Sanz |
Tengo un problema que no logro resolver con algo aparentemente muy sencillo. cuando intento abrir un socket con esta sentencia:
sock = new Socket("localhost", 543); Me salta una excepción tal que así: java.net.ConnectException: Connection refused: connect Me he roto la cabeza durante horas y no consigo ver qué es lo que hago mal. Espero que me puedan ayudar Un saludo :) |
Respuesta: | Fernando Gomez |
Si estas utilizando esta sentencia me imagino que estas programando un cliente con sockets en Java puedes validar lo siguiente para este Error.
1. Revisa que tu aplicacion Servidor de sockets este ocupando ese puerto el 543 y que corra en la misma maquina porque estas buscando la IP localhost(127.0.0.1), este codigo debe tener un ciclo while que es quien espera tus conexiones clientes ,sino utilizas un demonio no deberas cerrar la ventana porque tiras el proceso, en otra ventana ejecuta tu cliente y se deberan conectar. 2. Puede ser que ese puerto este ocupado por otro proceso que no sea tu servidor java si estas ocupando windows ejecuta los comandos netstat para que te muestre las ip y los puertos ocupados antes de que ejecutes el servidor de sockets en java si se encuentra ocupado o más bien si se despliega en la pantalla ese numero de puerto significa que esta ocupado, cambialo y prueba con otro. si estas utilizando Linux o Unix puedes validar la tabla con netstat -a | grep 543. 3. Intenta con un puerto de 4 digitos que sea mayor a los 5000 de preferencia ya que algunos Sistemas ocupan los puertos chicos para realizar sus comunicaciones nativas como ftp, http, etc. |