Java - Configurar puerto e ip

 
Vista:
sin imagen de perfil
Val: 212
Ha disminuido 1 puesto en Java (en relación al último mes)
Gráfica de Java

Configurar puerto e ip

Publicado por Juan (66 intervenciones) el 13/11/2019 09:25:05
Muy buenas, he hecho dos programas en java, uno actúa como servidor, recibe conexiones y crea hilos con sockets con estas conexiones y las trabaja, el otro programa simplemente se conecta a este mediante la ip y el puerto.

Ya están hechos, y funcionan bien en localhost. he querido pasar el programa que recibe las conexiones a un servidor online con ubuntu server 16.04, primera vez que uso un servidor online, siempre había trabajado con pc físicos, simplemente cree un usuario, le di permisos, cree un directorio con el programa y lo ejecute. Se ejecuto bien porque por la consola me aparece el mensaje "A la espera de una conexión" pero luego desde mi ordenador ejecuto el programa y no se conecta.

Los puertos... sé, porque lo he leído y hecho en otras ocasiones, el tema de las ip privadas y las ip públicas, que hay que conectarse a la pública, y en el router configurar para que las conexiones que reciba de un determinado puerto las redirija al ordenador que contiene el programa que está a la espera de las conexiones en ese puerto.

Aquí es donde viene mi duda, que a lo mejor no tenía que haberla posteado en este foro, pero no sabía en qué foro plantearla. porque mi duda (creo) no es con los programas porque funcionan bien en localhost. la cosa es que al ser un servidor online, no puedo meterme en el router y configurar las conexiones que entren por un determinado puerto (o creo yo que no puedo). lo que he hecho ha sido meterme en el firewall y crear una regla que permita las conexiones en ese determinado puerto. pero hasta ahi, luego lei por internet sobre una instrucción de ubuntu para abrir puertos por consola, la ejecute pero no me salio nada, no estoy seguro que haya funcionado. y hasta ahí he podido hacer. sigo sin poder conectarme al programa que tengo en el servidor. no se si es que me falta alguna configuración o que estoy haciendo algo mal. tampoco se que mas detalles decirles, si me podeis guiar un poco para saber si tengo que configurar algo, o saber qué es lo que falla se los agradeceria. Muchas gracias.

Se me olvidaba, no he instalado nada en el servidor solo la maquina virtual de java para ejecutar el programa, este redireccionamiento se hace mediante un programa? por ejemplo apache?
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
sin imagen de perfil
Val: 212
Ha disminuido 1 puesto en Java (en relación al último mes)
Gráfica de Java

Configurar puerto e ip

Publicado por Juan (66 intervenciones) el 13/11/2019 13:21:59
Bueno creí que el código no era el problema, y al parecer puede que sí sea.

He entrado a esta web https://check-host.net/check-tcp que es para testear conexiones, he colocado la ip publica de mi servidor seguido de dos puntos y el puerto al que quiero conectarme, y se ha conectado, y en la consola de mi servidor mi aplicación ha respondido a las conexiones que hizo esta pagina. por lo tanto la aplicación del servidor va bien, y el puerto y dirección ip también funcionan bien porque la pagina si se conectó, el problema por lo tanto está en mi aplicación cliente.

1
2
3
4
5
6
7
8
9
10
11
InetAddress ip;
int puerto = 8080;
Socket socket;
DataOutputStream salida;
DataInputStream  entrada;
 
System.out.println("Conectando al servidor");
ip =  InetAddress.getByName("192.168.0.1");
socket = new Socket(ip, puerto);
salida = new DataOutputStream(socket.getOutputStream());
entrada = new DataInputStream(socket.getInputStream());

Asi me conecto al servidor, evidentemente ese no es el puerto, y esa no es la ip, uso la ip publica, que por razones obvias no la pongo jeje
No se si en lugar de usar un InetAddress debo usar algun otro parametro o conectarme de alguna manera diferente.
Gracias!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de pablo
Val: 841
Bronce
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

Configurar puerto e ip

Publicado por pablo (212 intervenciones) el 13/11/2019 14:23:13
Hola, qué tal Juan, pues bien atendiendo a tu duda de si puedes o no usar otra cosa distinta a InetAddress la respuesta es no ya que el constructor sobrecargado recibe esos dos parámetros

https://docs.oracle.com/javase/7/docs/api/java/net/Socket.html

mi pregunta es por qué no tienes apache en tu servidor online cual utilizas entonces ?, Creo que necesitas un servidor apache o glassfish para poder montar todo el aplicativo y que se vea en web o que al menos permita la comunicación es lo que pienso y lo que podrías hacer. De todos modos esperemos sí alguien da una respuesta más acertada que la mia, pero me causa curiosidad ese aspecto.

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil
Val: 212
Ha disminuido 1 puesto en Java (en relación al último mes)
Gráfica de Java

Configurar puerto e ip

Publicado por Juan (66 intervenciones) el 13/11/2019 16:13:53
Muy buenas Pablo, gracias por la respuesta.

Lo del servidor apache no lo he puesto porque es primera vez que pongo un aplicativo en un servidor como dije anteriormente, y no sabia que era necesario colocar el servidor de apache, simplemente por probar lo que hice fue poner el aplicativo en el servidor y ejecutarlo, que seguramente no se debe hacer así, pero lo hice asi por ir probando y aprendiendo sobre los servidores. lo que me parece raro es que la web de test que mencione si se pueda conectar y mi aplicación no. si fuera un error en el servidor tampoco debería conectarse la web. pero instalare el apache y lo haré desde ahí a ver que tal y te cuento. gracias pablo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Configurar puerto e ip

Publicado por Tom (1599 intervenciones) el 13/11/2019 16:38:18
Haz debug del código de tu cliente. Podría ser que una de las operaciones de red esté fallando con una excepción.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil
Val: 212
Ha disminuido 1 puesto en Java (en relación al último mes)
Gráfica de Java

Configurar puerto e ip

Publicado por Juan (66 intervenciones) el 13/11/2019 16:51:53
Ya vi que pasaba, era una tontería que no fui capaz de ver hasta ahora jajaja

el programa cliente al principio me conectaba desde una clase, y luego en lugar de conectarse desde esa clase, lo que hice fue crear otra clase, para conectarse a través de hilos. pero el código de la primera clase no lo borre, por si acaso luego modificaba algo que no debía. bueno resulta que la ip la estaba modificando en la clase con la que ya no me conecto pero mantengo el código, por lo tanto la aplicación cliente se seguía conectando a localhost que era lo que tenia la clase con el hilo. puse la ip en la clase del hilo y todo va de maravilla. vamos que era una tontería y llevo horas dándole vueltas y buscando información por internet y haciéndoles pensar a vosotros jeje, disculparme por hacerles pensar en vano, todo va bien. No quise borrar el codigo por si cometía un error no perder tiempo volviéndolo a hacer, y resulta que me hizo perder tiempo el tener el codigo sin usar ahi :/
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar