client ken ikke connecte til server???
jeg har en lavet en simpel applet der skal kommunikere med en server, Serveren körer tilsyneladende fint, men appletten giver en melding (nederst i browseren):exception: com.ms.security.SecurityExceptionEx[Cliet.start]: cannot access \"127.0.0.1\":5000
det virker som om at fejlen opstår i clientens start()-function under Try blocken:
connection=new Socket(InetAddress.getLocalHost(),5000);
hvor den pröver at etablere forbindelse med Serveren.
(både client og server körer på samme maskine)
source:
**********************************
CLIENT
**********************************
import java.applet.Applet;
import java.awt.*;
import java.awt.event.*;
import java.io.*;
import java.net.*;
public class Client extends Applet implements Runnable
{
private TextField id;
private TextArea display;
private char myMark;
private Socket connection;
private DataInputStream input;
private DataOutputStream output;
private Thread outputThread;
public void init()
{
display = new TextArea(4,30);
display.setEditable(false);
add(display,BorderLayout.SOUTH);
id=new TextField();
id.setEditable(false);
add(id,BorderLayout.CENTER);
}
public void start()
{
try
{
connection=new Socket(InetAddress.getLocalHost(),5000);
input=new DataInputStream(connection.getInputStream());
output=new DataOutputStream(connection.getOutputStream());
}
catch(IOException e)
{
e.printStackTrace();
}
outputThread=new Thread(this);
outputThread.start();
}
public void run()
{
try
{
myMark=input.readChar();
id.setText(\"ok....\"+myMark+\"\");
}
catch(IOException e)
{
e.printStackTrace();
}
while (true)
{
try
{
String s=input.readUTF();
id.setText(\"ok....\"+s+\"\");
}
catch(IOException e)
{
e.printStackTrace();
}
}
}
public void send()
{
try
{
output.writeInt(4);
}
catch(IOException e)
{
e.printStackTrace();
}
}
}
**********************************
SERVER
**********************************
import java.applet.Applet;
import java.awt.*;
import java.awt.event.*;
import java.io.*;
import java.net.*;
public class Server extends Frame
{
private int ant;
private TextArea output;
private ServerSocket server;
private Player players[];
public Server()
{
ant=0;
players = new Player[2];
try
{
server = new ServerSocket(5000,2);
}
catch(IOException e)
{
e.printStackTrace();
System.exit(1);
}
output = new TextArea();
add(output,BorderLayout.CENTER);
setSize(300,300);
setVisible(true);
}
public void execute()
{
try
{
players[ant]=new Player(server.accept(),this,ant);
players[ant].start();
}
catch(IOException e)
{
e.printStackTrace();
System.exit(1);
}
}
public void display(String s)
{
output.append(s + \"\\n\");
}
public static void main(String args[])
{
Server game=new Server();
game.execute();
}
}
class Player extends Thread
{
private Socket connection;
private DataInputStream input;
private DataOutputStream output;
private Server control;
private int number;
private char mark;
public Player(Socket s,Server t,int num)
{
mark=\'M\';
connection = s;
try
{
input=new DataInputStream(connection.getInputStream());
output=new DataOutputStream(connection.getOutputStream());
}
catch(IOException e)
{
e.printStackTrace();
System.exit(1);
}
}
public void run()
{
try
{
control.display(\"player has connected\");
output.writeChar(mark);
output.writeUTF(\"Blah blah\");
}
catch(IOException e)
{
e.printStackTrace();
System.exit(1);
}
}
}
Håber i kan hjälpe...
