java.security.AccessControlException: access denied

Servo Herko

Aktives Mitglied
Hallo,
erstmal der Code:
Server:
Java:
import java.net.ServerSocket;
import java.net.Socket;

import java.io.IOException;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.io.InputStream;
import java.io.BufferedReader;
import java.io.InputStreamReader;

public class Main {
  public static void main(String[] args) {
  try {
     ServerSocket _ServerSocket = new ServerSocket(49399);
     System.out.println("Server startet!");
     
     Socket _Socket = _ServerSocket.accept();
     
     OutputStream _OutputStream = _Socket.getOutputStream();
     PrintWriter _PrintWriter = new PrintWriter(_OutputStream);
     
     InputStream _InputStream = _Socket.getInputStream();
     BufferedReader _BufferedReader = new BufferedReader(new InputStreamReader(_InputStream));
     
     String _getString = null;
     while((_getString = _BufferedReader.readLine()) != null) {
        System.out.println(_getString);
     
     }
     _PrintWriter.close();
     _BufferedReader.close();
     
     } catch(IOException _Exception) {
        _Exception.printStackTrace();
     }
  }
}
Client:
Java:
import java.net.Socket;
import java.net.UnknownHostException;

import java.io.IOException;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.io.InputStream;
import java.io.BufferedReader;
import java.io.InputStreamReader;

public class Client {
  public static void main(String[] args) {
  try {
     Socket _Client = new Socket("localhost", 49399);
     System.out.println("Client: Connectet to 'localhost' at port 49399");
     
     OutputStream _OutputStream = _Client.getOutputStream();
     PrintWriter _PrintWriter = new PrintWriter(_OutputStream);
     
     InputStream _InputStream = _Client.getInputStream();
     BufferedReader _BufferedReader = new BufferedReader(new InputStreamReader(_InputStream));
     
     _PrintWriter.write("Client: Hallo Server!");
     _PrintWriter.flush();
     
     _PrintWriter.close();
     _BufferedReader.close();
     
     } catch (UnknownHostException _Exception){
        _Exception.printStackTrace();
     } catch (IOException _Exception){
        _Exception.printStackTrace();
     }
  }
}

Ich wollte insgesammt nur das der Client etwas zum Server sendet und der das dann ausgıbt...
(Das ganze ist noch von einem Tutorial, im tut hats geklappt)
Ich führe zu erst den Server aus dann den Clıent, doch beim Client kommt immer das:
Code:
Exception in thread "main" java.security.AccessControlException: access denied ("java.net.SocketPermission" "127.0.0.1:49399" "connect,resolve")
	at java.security.AccessControlContext.checkPermission(AccessControlContext.java:372)
	at java.security.AccessController.checkPermission(AccessController.java:559)
	at java.lang.SecurityManager.checkPermission(SecurityManager.java:549)
	at java.lang.SecurityManager.checkConnect(SecurityManager.java:1051)
	at java.net.Socket.connect(Socket.java:574)
	at java.net.Socket.connect(Socket.java:528)
	at java.net.Socket.<init>(Socket.java:425)
	at java.net.Socket.<init>(Socket.java:208)
	at Client.main(Client.java:14)

Wie kann ich das beheben?
 
Also, das ist, weil dein SecurityManager dir verbietet, auf diesem Port zu senden.

Mögliche Lösungen:

1.Eigener Security Manager -> Davon ist abzuraten, da ersten der Port vllt. geschützt ist usw.
2. Anderer Port -> Einfach auf einem anderen Port versuchen, vllt. ist dieser Ja geschützt.
3. Programm mit Adminrechten ausführen -> Wenn du auf dem Computer kein Admin bist, hast du vllt keine Berechtigung, manche Prots zu nutzen
 
Ich hab noch mal ne Frage zu.
Kann das auch dadurch ausgelöst sein, weil ich es Online kompiliere?
Ich bin grade nicht an meinem standart Laptop und dieser hat auch kein Java :bloed:...
Deswegen habe ichs mal Online versucht auf www.browxy.de.
 

Zurück
Oben