Si su código es un applet o se ejecuta bajo un administrador de seguridad de Java, debe otorgarle explícitamente permisos para hacer cosas.
Para que un acceso a los recursos que se le permita a un applet (o una aplicación que se ejecuta con un controlador de seguridad), el correspondiente permiso debe concederse explícitamente al código de intentar el acceso.
De forma predeterminada, su código no tiene permiso de socket. Su permiso dice que su código tiene permiso para aceptar la conexión, para conectarse y para resolver solo el host con IP 192.168.1.1
en el puerto 31337
.
Las acciones "aceptar" y "conectar" son obvias.
La acción "resolver" está implícita cuando alguna de las otras acciones es presente. La acción "resolver" se refiere a las búsquedas del servicio de host/nombre IP.
La acción "escuchar" solo tiene sentido cuando se usa con "localhost".
La diferencia entre escuchar y aceptar es que escuchar significa "estar preparado para la conexión y ver si hay una conexión en espera" y aceptar significa "ok, aceptarlo".
See the docs for permissions in java 7. y java.net.SocketPermission java docs
Bueno, la documentación sun dice: Del mismo modo, si el permiso siguiente: p2 = new SocketPermission ("localhost: de 1024", "aceptar, conectar, escuchar"); se concede a algún código, permite que el código acepte conexiones, se conecte o escuche en cualquier puerto entre 1024 y 65535 en el host local. Entonces, "aceptar" permite conexiones con el host específico, no desde el host específico. – lazydaemon
Por supuesto está "encendido", no "desde". El resto de la respuesta sugiere esto. Corregido Gracias. – dcernahoschi