Foros del Web » Programación para mayores de 30 ;) » Java »

Crear socket en máquina local a través de un applet

Estas en el tema de Crear socket en máquina local a través de un applet en el foro de Java en Foros del Web. Hola a todos, Había realizado una aplicación de chat en Java y quería transformarla en un applet para poder presentarla en una página web. El ...
  #1 (permalink)  
Antiguo 30/10/2012, 11:34
 
Fecha de Ingreso: octubre-2012
Mensajes: 2
Antigüedad: 11 años, 5 meses
Puntos: 0
Crear socket en máquina local a través de un applet

Hola a todos,

Había realizado una aplicación de chat en Java y quería transformarla en un applet para poder presentarla en una página web. El problema que tengo es que al crear el socket para la comunicación con el servidor obtengo una excepción (AccesControl Exception):

access denied ("java.net.SocketPermission" "127.0.0.1:9001""connect, resolve")

La creación del socket la realizo desde la misma máquina, ya que el servidor también se encuentra alojado en local:
socketCliente = new Socket("localhost", PUERTO);

Según me he informado estos días los applets tienen prohibida cualquier creación de sockets excepto si son para comunicarse con la máquina que los ha lanzado. ¿Por qué entonces no puedo crear un socket para comunicarme con la propia máquina local? ¿Se debe firmar el socket o las políticas de seguridad de java para este cas otambién?

Muchísimas gracias por adelantado, necesito ayuda!!!
  #2 (permalink)  
Antiguo 30/10/2012, 13:13
Avatar de chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 19 años, 6 meses
Puntos: 454
Respuesta: Crear socket en máquina local a través de un applet

Hola:

"localhost" es una palabra que significa "la maquina en la que estoy corriendo". El servidor corre en el servidor, así que "lcoalhost" en el servidor ee el servidor. El applet corre en el pc del cliente que visita la pagina con el navegador, en mi caso "chuidiangPC", asi que si yo visito tu applet, en mi PC "localhost" siginfica "chuidiangPC" y no tu servidor, por eso no puedes abrir el socket.

En el applet abre el socket contra la IP pública de tu servidor. Abre el navegador en tu servidor y visita la página http://www.whatismyip.com/ para ver cual es la IP pública si no la conoces.

Se bueno.
__________________
Apuntes Java
Wiki de Programación
  #3 (permalink)  
Antiguo 30/10/2012, 14:30
 
Fecha de Ingreso: octubre-2012
Mensajes: 2
Antigüedad: 11 años, 5 meses
Puntos: 0
Respuesta: Crear socket en máquina local a través de un applet

Lo primero de todo agradecerte tu respuesta chuidiang.

Si estoy ejecutando el applet en la misma máquina que el servidor ¿podría hacerse con localhost? Si ejecuto ejecuto el código como aplicación Java y no como un applet funciona perfecto sin excepciones ¿a qué puede deberse esto?
  #4 (permalink)  
Antiguo 30/10/2012, 15:09
 
Fecha de Ingreso: enero-2008
Mensajes: 614
Antigüedad: 16 años, 3 meses
Puntos: 57
Respuesta: Crear socket en máquina local a través de un applet

Hace varios años yo tambien necesitaba hacer algo parecido a lo que tu necesitas. Y pude lograr que un applet que utilizaba sockets se conectara a un servidor.

Lo que hice aquella vez fue modificar el policy file de Java y permitir que el applet abra conexiones con sockets.

No recuerdo bien la sintaxis ni el formato que se debe utilizar pero aqui hay algo de documentacion
http://docs.oracle.com/javase/1.4.2/...cketPermission

El problema con utilizar este metodo es que debes cambiar el archivo de politicas de Java en todos los clientes que vayan a utilizar el applet.
Al final deje de lado las applets y use una aproximacion diferente para realizar lo que necesitaba

Etiquetas: acceso., applet, local, socket, socketpermission
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 19:39.