Socket und Applet

Jack

Mitglied
Immer wenn ich ein Applet schreibe und versuche einen Socket zu initialisieren dann erhalt ich eine blöde Meldung:


java.security.AccessControlException: access denied (java.net.SocketPermission 1
11.111.111.111:90 connect,resolve)
at java.security.AccessControlContext.checkPermission(AccessControlConte
xt.java:270)
at java.security.AccessController.checkPermission(AccessController.java:
401)
at java.lang.SecurityManager.checkPermission(SecurityManager.java:542)
at java.lang.SecurityManager.checkConnect(SecurityManager.java:1044)
at java.net.Socket.connect(Socket.java:419)
at java.net.Socket.connect(Socket.java:375)
at java.net.Socket.<init>(Socket.java:290)
at java.net.Socket.<init>(Socket.java:118)
at Email2.init(Email2.java:23)
at sun.applet.AppletPanel.run(AppletPanel.java:341)
at java.lang.Thread.run(Thread.java:536)


Und mein Programm:

import java.awt.*;
import java.net.Socket;
import java.applet.*;
import java.io.*;
import javax.swing.*;
import java.awt.event.*;

public class Email2 extends Applet
{
public void init()
{

JFrame frm = new JFrame("slkfj");
frm.setVisible(true);

try
{
Socket s = new Socket("111.111.111.111", 25);
} catch(IOException e) { }
}
}

Weis vielleicht jemand warum das passiert (Ich hab das ganze auch schon mit anderen Ports probiert!!)
 
Hallo,

ich schließe mal aus den spärlichen Antworten auf Java-Fragen, dass es hier im Forum keine Java-Spezis gibt ....

Ich habe eben mal n bisschen gesucht, aber nicht wirklich viel gefunden. In Peter Herzogs Forum gibt's scheinbar ein paar Antworten auf Java-Fragen: URL der Java-Forums
 
Nach der Fehlermeldung zu schließen würde ich darauf tippen, dass du auf diese Adresse und Port nicht zugreifen darfst! :) :)
 
Da es sich um ein Applet hadelt, welches in der "Sandkiste" läuft sind grundsätzlich alle verbindungen welche nicht auf den Ursprünglichen Ladeserver des Applets verweisen blockiert. Man könne ja irendwelche Inhalte von irgendwelchen Servern downloaden usw.

Das mit den Ports glaub ich weniger, da es sich um eine sicherheitszugriffsverletzung handelt und nicht um einen Verbindungsfehler. Wenn der Port z.B. durch einen Firewall geschützt währe, könnte sich das Java Applet sicher nicht verbinden aber der Firewall würde dem Applet auch keine rückmeldung geben dass der Port geschützt ist. Genausowenig würde ein Betriebssystem auf dem Port eine Rückmeldung geben wenn auf dem Port keine dienste laufen.
 
Ne das ist einfach ein Fehler wegen dem Securitymanager. Ich hab gerade den selben Fehler. Im Endeffekt muss man ein policyfile anlegen und den Javaintepreter mit der Option -Djava.security starten.
 
Soweit ich weis kommt aber dann eine Warnung in der Der Anwender die Ausfürhung des Applets bestätgit. Oder kann man dies auch irgendwie durch signaturen umgehen?
 
Zurück