Y
youssef
Gast
hallo zusammen
ich habe in eine client-server applikation einen frame für den server mit zwei buttons "server starten und "server stoppen".
in den server wird einen thread gestartet, der die daten von client empfängt.
beim drücken den button "server stoppen" unterbreche ich den thread mit interuppt und in run vom thread frage ich ab.
nach starten der server ohne den client zu starten bleibt der server in accept() hängen (es ist auch so gewollt). nach drücken den button "server stoppen" tut das programm nichts und wird nicht unterbrochen.
ich habe den timeout gesetzt aber nach ende der zeit bricht er ab mit einer exception(unsauber).
weiss jemand wie man den server sauber benden kann also thread beenden und serversocket schliessen und alle nötige arbeit.
danke im voraus
Youssef
ich habe in eine client-server applikation einen frame für den server mit zwei buttons "server starten und "server stoppen".
in den server wird einen thread gestartet, der die daten von client empfängt.
beim drücken den button "server stoppen" unterbreche ich den thread mit interuppt und in run vom thread frage ich ab.
Code:
public void run()
{
try
{
while (true) {
if (isInterrupted())
break;
Socket so = serversocket.accept();
OutputStream out = so.getOutputStream();
// daten empfangen und weiter verarbeiten
so.close();
}
}
}
catch (IOException e)
{
System.err.println(e.toString());
System.exit(1);
}
}
nach starten der server ohne den client zu starten bleibt der server in accept() hängen (es ist auch so gewollt). nach drücken den button "server stoppen" tut das programm nichts und wird nicht unterbrochen.
ich habe den timeout gesetzt aber nach ende der zeit bricht er ab mit einer exception(unsauber).
weiss jemand wie man den server sauber benden kann also thread beenden und serversocket schliessen und alle nötige arbeit.
danke im voraus
Youssef