Serversocket löst bei manchen PC eine IOException

Hallo,

ich habe eine serversocket in einer signierten Applet implementiert. Wenn ich die Applet vom manchen PC lade, bekomme ich eine IOException
„Access denieded on port: 80.“ obwohl die gleiche JVM installiert ist.
Es scheint dass die serversocket nicht erzeugt.

So sieht mein code aus:

public void runServerThread() {

char buf[] = new char[65536];
int read;
int DataLength = 0;
int LengthFallsError = 0;
int retryCounter = 0;
int failFlag = 0;
try {
sSocket = new ServerSocket(80);
System.out.println(„Server started“);
try {
System.out.println(„wait of Connection“);
clientSocket = sSocket.accept();
System.out.println(„Connection accepted“);
try {
out =
new PrintWriter(clientSocket.getOutputStream(), true);
in =
new BufferedReader(
new InputStreamReader(
clientSocket.getInputStream()));
String inputLine, outputLine;
FileReader bin = new FileReader(fileName);



out.close();
in.close();
clientSocket.close();
sSocket.close();
stopServerThread();
} catch (IOException e1) {
//e1.printStackTrace();
System.out.println(„Stream Error“);
errorManager(„Error: Stream Error.“, false, true);
}
} catch (IOException e) {
clientSocket = null;
System.out.println(„connection not accepted“);
errorManager(„Error: Connection not accepted.“, false, true);
}

} catch (IOException e) {
System.out.println(„Access denieded on port: 80.“);
errorManager(„Error: access denied on port: 80.“, false, true);
}
}// public void runServerThread()

Woran kann es liegen?

Gruss.
Hicham

serversocket löst bei manchen PC eine IOException
Auch hallo.

ich habe eine serversocket in einer signierten Applet
implementiert. Wenn ich die Applet vom manchen PC lade,
bekomme ich eine IOException
„Access denieded on port: 80.“ obwohl die gleiche JVM
installiert ist.
Es scheint dass die serversocket nicht erzeugt.

Vielleicht ist das ein Problem mit den Firewalls: der Server lässt nur
bestimmte IP-Adressen durch und der Browser eines Client-PC’s unterdrückt
das Ausführen von Applets. Oder ein vorhandener Router blockt den Zugriff
auf Java Applets.
Und beim Code posten bitte auch den Serverkontext mitbeschreiben :wink:
Z.B. Servlet beim Apache Tomcat 5.53 Server.

HTH
mfg M.L.

Hi,

liegt es vielleicht daran, das Applets sich nur zu dem Server verbinden dürfen, auf dem sie liegen?

Gruß Bonkers

Hallo,

Hi,

liegt es vielleicht daran, das Applets sich nur zu dem Server
verbinden dürfen, auf dem sie liegen?

Nein, das Applet ist schon signiert.
Ich habe das Problem gefunden aber noch nicht gelöst und zwar es liegt daran, dass der Port Numer besetzt ist.
Mit der Befehl netstat -a siehe ich dass der PC mit Port 80 besetzt ist.
Wie kann ich diese Verbindung unter windows NT schliesse?
unter linux: lsof -i tcp:25

Gruß Bonkers

Gruss.
Hicham

Ich habe das Problem gefunden aber noch nicht gelöst und zwar
es liegt daran, dass der Port Numer besetzt ist.
Mit der Befehl netstat -a siehe ich dass der PC mit Port 80
besetzt ist.
Wie kann ich diese Verbindung unter windows NT schliesse?
unter linux: lsof -i tcp:25

Keine Ahnung, aber du kannst schauen welcher Prozess den blocliert. mit netstat -a -o bekommst du die Prozess-ID. Im Taskmanager unter Ansicht diese Anzeigen lassen und gegebenen Falls den Prozess killen.

Gruß B.

Ich habe das Problem gefunden aber noch nicht gelöst und zwar
es liegt daran, dass der Port Numer besetzt ist.
Mit der Befehl netstat -a siehe ich dass der PC mit Port 80
besetzt ist.

Natuerlich ist Port 80 besetzt. Ist ja auch reserviert fuer http.
Vielleicht solltest du ueberlegen dein Applet auf einen anderen
Port zu schicken.

When selecting a port number, you should note that port numbers
between 0 and 1,023 are reserved for privileged users (that is, super
user or root). These port numbers are reserved for standard services,
such as email, FTP, and HTTP. When selecting a port number for your
server, select one that is greater than 1,023!

http://www.javaworld.com/jw-12-1996/jw-12-sockets-p2…

Einfach eine Applikation abzuschiessen, die mit Port 80 arbeitet,
ist aus meiner Sicht auch nicht die feine Art, es sei denn, du
hast dabei freie Hand.

Gruss, Patrick