Sikkerhedsproblemer med java applet, der bruger sockets
Jeg har problemer med at anvende sockets i en javaapplet. Såvidt jeg kan se, er det spørgsmål om sikkerhed, der gør, at appletten ikke virker. Den virker nemlig fint som en almindelig applikation. Jeg har vedlagt kildekoden forneden.Håber der er nogen, der kan hjælpe eller idet mindste give et svar på, hvad der er galt.
**************************************************
import java.net.*;
import java.io.*;
import java.awt.*;
import java.applet.*;
import java.awt.event.*;
public class counter extends Applet{
public void init() {
String link = "http://www.yahoo.dk";
String referent = "http://www.minreferent.dk";
Socket socket = null;
BufferedReader input;
PrintWriter output;
String host = "";
String file = "";
String sizeStr = "0";
// Filnavn og host findes
try {
URL url = new URL(link);
host = url.getHost();
file = url.getFile();
} catch(MalformedURLException e) {System.out.println("Excepton: "+e);}
// socket-request konstrueres
String message = "GET "+file+" HTTP/1.1\nAccept: text/plain, text/html\nAccept-Language: en-gb\nAccept-Encoding: deflate\nUser-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)\nReferer: "+referent+"\nHost: "+host+"\nConnection: Close\n\n";
// Socket opretter forbindelse til serveren
try {
socket = new Socket(host, 80);
} catch (UnknownHostException e) {System.out.println("Excepton: "+e);}
catch (IOException e) {System.out.println("Excepton: "+e);}
try {
BufferedWriter wr = new BufferedWriter(
new OutputStreamWriter(socket.getOutputStream()));
wr.write(message);
wr.flush();
} catch (IOException e) {System.out.println("Excepton: "+e);}
try {
BufferedReader rd = new BufferedReader(
new InputStreamReader(socket.getInputStream()));
String str;
while ((str = rd.readLine()) != null) {
if(str.equals("")){
rd.close();
}
}
rd.close();
} catch (IOException e) {System.out.println("Excepton: "+e);}
}
}