# AccessControlException



## maggifresse (8. Jan 2007)

Hallo ich versuche gerade ein Chat-Programm aufzubauen und hab immoment ein Problem. Wenn ich mein Client- Programm laufen lass (Multicast) mit der Multicast-Adresse: "225.0.0.7", wird eine Exception ausgeworfen:
java.net.SocketException: Not a Multicast address
Wenn das Server Programm dann das Client Programm anspricht wird eine weiter Exception ausgelöst:
java.security.AccessControlException: access denied(java.net.SocketPermission 225.0.0.7 connect, accept, resolve)
PS: Kann es vll sein weil das Programm in einem Applet laüft. Hier noch der Quellcode:
Client-Programm:


```
try {
      MulticastSocket sock = new MulticastSocket(9024);
      InetAddress multicast_address = InetAddress.getByName(225.0.0.7);
      sock.joinGroup(multicast_address);
       byte[] puffer = new byte[100];
       DatagramPacket paket = new DatagramPacket(puffer,puffer.length);
       sock.receive(paket);
       String nachricht = new String(paket.getData());
       System.out.println("Nachricht empfangen: " + nachricht);
     }
     catch(Exception h) {
      System.out.println(h);
     }
```

Server-Programm:


```
try {
    MulticastSocket sock = new MulticastSocket(9024);
    InetAddress multicast_address = InetAddress.getByName(225.0.0.7);
    sock.joinGroup(multicast_address);
    while(true) {
     String nachricht = "Multicast-Verbindung OK";
     byte[] puffer = nachricht.getBytes();
     DatagramPacket paket = new DatagramPacket(puffer,puffer.length,multicast_address,9024);
     sock.send(paket);
     System.out.println("Server: Nachricht gesendet");
     break;
    }

   }
   catch(Exception e) {
    System.out.println(e);
   }
```


----------



## L-ectron-X (8. Jan 2007)

maggifresse hat gesagt.:
			
		

> Kann es vll sein weil das Programm in einem Applet laüft.


Genau das ist der Grund. Da hilft nur Signieren.


----------



## maggifresse (9. Jan 2007)

Ich hab das jetzt gemacht;
Dafür musste ich aber ein jar-Archive erstellen.
Ich erstellte die Manifest-Datei:
Main-class: _Signiert_
Dann habe ich es so umgewandelt:
jar cvfm _Signiert_.jar Manifest.mf _Signiert_.class
danach habe ich es signiert:
jarsigner _Signiert_.jar _meinName_
Jetzt wenn ich das jar-Archive starte steht folgender Error drin:

_Java Virtual Machine Launcher_
Falied to load Main-Class manifest attribut from:
C:\...


----------



## L-ectron-X (9. Jan 2007)

Applets laufen im Browser, nicht auf dem lokalen Desktop als Applikaktion.
Bei der Erzeugung von Jar-Dateien für Applets wird das Attribut _Main-Class_ nicht benötigt, es gibt ja auch keine Klasse mit einer main()-Methode.


----------



## maggifresse (9. Jan 2007)

Das Hauptfenster lass ich aber von einem Applet starten, dies ist dann eine Application.


----------



## maggifresse (9. Jan 2007)

Kann dass sein das ich die signierte Datei, als archive Datei neben der *.class im HTML-Tag laden muss.


----------



## L-ectron-X (9. Jan 2007)

maggifresse hat gesagt.:
			
		

> Das Hauptfenster lass ich aber von einem Applet starten, dies ist dann eine Application.


Der kleinste gemeinsame Nenner ist aber das Applet, alles unterliegt dann den Sicherheitsbestimmungen für Applets.
Das kannst du am unteren Rand deines Applikationsfensters erkennen, so lange das Applet nicht signiert wurde.



			
				maggifresse hat gesagt.:
			
		

> Kann dass sein das ich die signierte Datei, als archive Datei neben der *.class im HTML-Tag laden muss.


Ja, der Browser muss ja wissen wo er das Applet hernehmen soll.


----------



## maggifresse (11. Jan 2007)

Kann mir jemand erklären wie des signieren richtig geht. Sitz jetzt schon 2 tage davor und versuche es :? . Wäre echt nett. 
PS: Ich will ein Applet signieren mit Keytool


----------



## L-ectron-X (11. Jan 2007)

Guck mal in die FAQs, da gibts einen Thread, der dir dabei hilft.


----------

