Frage : Java-Klienten-applet - AccessControlException

Ich bin erklärt worden, dass, wenn Sie einen applet mit TCP/UDP Code herstellen, um im appletprojektor anstelle vom Browser zu tun, weil er darstellt weniger Probleme… Sowieso erhalte ich diese Störung, wenn ich ihn im applet-Projektor laufen lasse:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
    java.security.AccessControlException: zurückgreifen verweigert (java.net.SocketPermission 1
    27.0.0.1: 4444 schließen, Beschluss) an
            an java.security.AccessControlContext.checkPermission (AccessControlConte
    xt.java: 323)
            an java.security.AccessController.checkPermission (AccessController.java:
    546)
            an java.lang.SecurityManager.checkPermission (SecurityManager.java: 532)
            an java.lang.SecurityManager.checkConnect (SecurityManager.java: 1034)
            bei java.net. Socket.connect (Socket.java: 519)
            bei java.net. Socket.connect (Socket.java: 475)
            bei java.net. Socket. (Socket.java: 372)
            bei java.net. Socket. (Socket.java: 186)
            an ClientApplet.run (ClientApplet.java: 42)
            an java.lang. Thread.run (Thread.java: 619)
    Ausnahme im Gewinde „Thread-4“ java.lang.NullPointerException
            an ClientApplet.run (ClientApplet.java: 58)
            an java.lang. Thread.run (Thread.java: 619)


Here ist der Code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
6:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
    Import java.io.*;
    Import java.applet. Applet;
    Import java.net. *;
    Import javax.swing.*;
    Import java.awt.*;
    Import java.util.*;
    Import java.awt.event.*;
    
    allgemeine Kategorie ClientApplet verlängert die jagdbaren JApplet Werkzeuge {
    
          allgemeines statisches JTextField Schwätzchen;
          allgemeines statisches JTextArea chattxt;
          statisches PrintStream OS = Null;
          statisches EinfaßungsclientSocket = -null;
    
          Öffentlichkeit leeres init () {
                Schwätzchen = neues JTextField (40);
                chattxt = neues JTextArea (20.50);
    
                chat.addActionListener (neues ActionListener () {
                   Öffentlichkeitslücke actionPerformed (ActionEvent Ereignis) {
                        System.out.println (chat.getText ());
                   }
                 });
                hinzufügen (Schwätzchen);
                hinzufügen (chattxt);
                   chattxt.append („he! ");
          }
    
          Öffentlichkeitslückenanfang () {
               neues Gewinde (dieses) .start ();
          }
    
          Öffentlichkeitslücke laufen () {
              // sind Bediener hier verbunden
    
    
    Einfaßung s = Null;
    
    Versuch {
    //s = neue Einfaßung (getParameter („Wirt“), Integer.valueOf (getParameter („Hafen“)));
    s = neue Einfaßung („localhost“, 4444);
    InputStream in = s.getInputStream ();
    OS = neues PrintStream (clientSocket.getOutputStream ());
    int buf = -1;
    während ((buf = in.read ()) ! = „.") {
    
    chattxt.append („\ n“ + buf);
    
    }
    chattxt.append („\ nIn lasen: “ + sendete in.read () + „\ nServer: “ + innen);
    
    } Fang (Ausnahme e) {
    e.printStackTrace ();
    }
    schließlich {
    Versuch {
    	s.close ();
    	} Fang (IOException e)
    	{}
    }
    
    
    
    }
    }


Here ist das Server.java, das ICH laufen lasse, bevor ich das ClientApplet…
1 beginne:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
6:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
87:
88:
89:
90:
91:
92:
93:
94:
95:
96:
97:
98:
99:
100:
101:
102:
103:
104:
105:
106:
107:
108:
109:
110:
111:
112:
113:
114:
115:
116:
    Import java.io.*;
    Import java.net. *;
    Import java.util.*;
    
    allgemeiner Kategorie Bediener {
    
        statisches EinfaßungsclientSocket = -null;
        statisches ServerSocket serverSocket = Null;
    
    	statisches clientThread t [] = neues clientThread [10];
    
    
        allgemeine Staticlückenhauptleitung (Schnur args []) {
    
    	// der Rückstellungshafen
    
    
    
    	int port_number=2222;
    
    	wenn (args.length < 1)
    	    {
    		System.out.println („, Spielbediener… \ nPort Zahl beginnend: „+port_number);
    	    } sonst {
    		port_number=Integer.valueOf (args [0]) .intValue ();
    	    }
    
            Versuch {
    	    serverSocket = neues ServerSocket (port_number);
    	    System.out.println („\ n ********************** \ n *** BEDIENER BEGONNENES *** \ n ********************** \ n“);
            }
            Fang (IOException e)
    	    {System.out.println (e);}
    
    	während (zutreffend) {
    	    Versuch {
    		clientSocket = serverSocket.accept ();
    		System.out.println („*** JEMAND VERBUNDENES *** \ n“);
    		für (int i=0; i<=9; i++) {
    		    wenn (t [i] ==null)
    			{
    			    (t [i] = neues clientThread (clientSocket, t)) .start ();
    			    Bruch;
    			}
    		}
    	    }
    	    Fang (IOException e) {
    		System.out.println (e);}
    	}
        }
    }
    
    Kategorie clientThread verlängert Gewinde {
    
        BufferedReader ist = Null;
        PrintStream OS = Null;
        EinfaßungsclientSocket = -null;
        clientThread t [];
        Gelegentliche Rolle = neues gelegentliches ();
    
        allgemeines clientThread (Einfaßung clientSocket, clientThread [] t) {
    	this.clientSocket=clientSocket;
            this.t=t;
        }
    
        Öffentlichkeitslücke laufen ()
        {
    		System.out.println („Überprüfung 1“);
    	Schnurlinie;
            Schnurname;
            int PY;
    	Versuch {
    		System.out.println („Überprüfung 2“);
    	    = ist neues BufferedReader (neues InputStreamReader (clientSocket.getInputStream ()));
    	    System.out.println („Überprüfung 3“);
    	    OS = neues PrintStream (clientSocket.getOutputStream ());
    	    System.out.println („Überprüfung 4“);
    	    int px = roll.nextInt (200);
    	    //os.println („Ihr name.") eintragen;
    	    System.out.println („Überprüfung 5“);
    	    Name = „Gast #“ + roll.nextInt (6);
    	    System.out.println („Überprüfung 6 \ n“);
    	    System.out.println (name+ " hat das Spiel eingetragen. Ihr Angriff: „+ px);
    	    System.out.println („Überprüfung 7“);
    	    für (int i=0; i<=9; i++)
    		wenn (t [i]! =null && t [i]! =this)
    		    t [i] .os.println („*** betrat A neuer Benutzer „+name+“ den Chat-Room!!! *** ");
    		    System.out.println („Überprüfung 8“);
    	    während (zutreffend) {
    			System.out.println („Überprüfung 9“);
    		Linie = is.readLine ();
                    wenn (line.startsWith („/quit“)) Bruch;
    		für (int i=0; i<=9; i++)
    		    wenn (t [i]! =null) t [i] .os.println („< " +name+“: „+px+ " > „+line); // jemand sagte etwas
    	    }
    	    für (int i=0; i<=9; i++)
    		wenn (t [i]! =null && t [i]! =this) {
    		System.out.println („\ n“ + Name +“ hat verlassen! \ n ");
    		    t [i] .os.println („*** der Benutzer „+name+“ lässt den Chat-Room!!! *** ");
    		}
    
    	    os.println („*** Tschüss „+name+“ *** ");
    
    	    für (int i=0; i<=9; i++) {
    		wenn (t [i] ==this) t [i] =null;
    		System.out.println („\ nSomeone hat verlassen! \ n“);
    	}
    
    	    is.close ();
    	    os.close ();
    	    clientSocket.close ();
    	}
    	Fang (IOException e) {};
        }
    }

Antwort : Java-Klienten-applet - AccessControlException

Traurig, Änderung
            Für jedes strRegKey in den objRegKeys

zu
            Für jedes strRegKey in den arrRegKeys


Respekt,

Rob.
Weitere Lösungen  
 
programming4us programming4us