un buenazo para sockets
Estoy haciendo una conexión entre dos computadoras utilizando Stream Sockets, una de estas computadoras corre un programa servidor que espera una conexión por el puerto 5000 y la otra corre un programa cliente(lo hago con un applet) tratando de accesar a este puerto pero siempre recibo un AccessControlException por parte del cliente.
Tratando de solucionar el problema, en la computadora servidor creé un archivo llamado "PermisoChat" declarando un SocketPermission
y su contenido es este
/* AUTOMATICALLY GENERATED ON Wed Aug 27 12:32:14 CDT 2003*/
/* DO NOT EDIT */
grant {
permission java.net.SocketPermission "*:5000", "connect, accept, listen";
};
Nota: este archivo lo creé utilizando una herramienta llamada policytool, es un formulario donde uno solamente coloca los datos deseados y crea el archivo con el nombre que le indicamos, esto nos ayuda a evitar errores de sintaxis. La herramienta viene con el JDK y sólo hay que teclear el comando "policytool" en la interfaz de comandos para correrla.
después en el archivo de propiedades de seguridad que es un archivo llamado "java.security" y es un archivo del JRE y se encuentra en su carpeta de instalación, agregué la siguiente linea.
policy.url.3=file:/D:/GABRIEL/PermisoChat
con lo cual ahora las politicas quedan de esta manera
policy.url.1=file:${java.home}/lib/security/java.policy
policy.url.2=file:${user.home}/.java.policy
policy.url.3=file:/D:/GABRIEL/PermisoChat
El archivo "PermisoChat" esta dentro de D:GABRIEL en la computadora donde corre el servidor y el archivo "java.security" que modifiqué también es de la computadora que corre el servidor.
Pero aún asi me sigue arrojando el cliente el AccessControlException.
¿Qué otra cosa me faltaría hacer?
¿Cómo puedo utilizar la clase SocketPermission dentro del código del programa del servidor?
¿Qué es el SecurityManager y como lo puedo usuar?
Ya envié este mensaje a varios foros de programadores incluyendo el de Sun Microsystems pero nadie me contesta. En la página de Sun vienen algunas explicaciones, que es en lo que me he basado para hacer lo que he hecho, pero no vienen ejemplos completos.
Espero que usted me pueda ayudar, le agradecería mucho, o no se quien mas en la uni sea bueno para Java.
Muchas Gracias
Hasta Luego
Gabriel
Tratando de solucionar el problema, en la computadora servidor creé un archivo llamado "PermisoChat" declarando un SocketPermission
y su contenido es este
/* AUTOMATICALLY GENERATED ON Wed Aug 27 12:32:14 CDT 2003*/
/* DO NOT EDIT */
grant {
permission java.net.SocketPermission "*:5000", "connect, accept, listen";
};
Nota: este archivo lo creé utilizando una herramienta llamada policytool, es un formulario donde uno solamente coloca los datos deseados y crea el archivo con el nombre que le indicamos, esto nos ayuda a evitar errores de sintaxis. La herramienta viene con el JDK y sólo hay que teclear el comando "policytool" en la interfaz de comandos para correrla.
después en el archivo de propiedades de seguridad que es un archivo llamado "java.security" y es un archivo del JRE y se encuentra en su carpeta de instalación, agregué la siguiente linea.
policy.url.3=file:/D:/GABRIEL/PermisoChat
con lo cual ahora las politicas quedan de esta manera
policy.url.1=file:${java.home}/lib/security/java.policy
policy.url.2=file:${user.home}/.java.policy
policy.url.3=file:/D:/GABRIEL/PermisoChat
El archivo "PermisoChat" esta dentro de D:GABRIEL en la computadora donde corre el servidor y el archivo "java.security" que modifiqué también es de la computadora que corre el servidor.
Pero aún asi me sigue arrojando el cliente el AccessControlException.
¿Qué otra cosa me faltaría hacer?
¿Cómo puedo utilizar la clase SocketPermission dentro del código del programa del servidor?
¿Qué es el SecurityManager y como lo puedo usuar?
Ya envié este mensaje a varios foros de programadores incluyendo el de Sun Microsystems pero nadie me contesta. En la página de Sun vienen algunas explicaciones, que es en lo que me he basado para hacer lo que he hecho, pero no vienen ejemplos completos.
Espero que usted me pueda ayudar, le agradecería mucho, o no se quien mas en la uni sea bueno para Java.
Muchas Gracias
Hasta Luego
Gabriel