Server beenden



  • Hallo Leute!

    Ich habe einen kleinen Server geschrieben. Der 'Main Loop' sieht so aus:

    while(true)
            {
                try
                {
                    Socket clientSock=sock.accept();
                    ResponseClient response=new ResponseClient(clientSock);
                    Thread thread=new Thread(response);
                    thread.start();
                }
                catch(Exception e)
                {
                    writeLogfile("Aborting Connection: "+e.getMessage());
                }
            }
    

    Das Problem ist jetzt aber, dass er ewig laeuft, und ihn brutal killen gefaellt mir nicht so gut.

    Beim Apache kann man zB
    apache -restart
    aufrufen, und schon startet er sich neu.

    Wie kann ich so etwas implementieren?
    Bin fuer alle Tipps dankbar.



  • while (true) {

    Socket socket = server.accept();
    ClientThread t = new ClientThread(socket);
    if (t.break) break;
    }

    Also und der Thread der den User "bearbeitet" kann doch einfach bei einem bestimmten Request an den server wie z.B. "beenden" :D, wenn du halt wie oben keine Instanz der Hauptklasse mit übergeben willst einen eigenen bestimmten flag der in der while immer überprüft wird, setzen damit der server beendet wird. Oder so ähnlich...?

    Oder er bearbeitet nur eine bestimmte Anzahl an Anfragen und beendet sich dann selbst! 😃

    while (true) {
    if (i > maxRequestNo) break;
    Socket ocket = server.accept();
    (new ClientThread(socket)).start();
    ++i;
    }



  • Gibts auch vernuenftige Vorschlaege?



  • Tschuldigung.

    Aber ich bin auch nur ein mäßig guter Programmierer und hattest du nicht gesagt du würdest dich über alle Vorschläge freuen!? 🙄

    Und außerdem, wie willst du´s sonst machen? Mir fällt nur irgendwas mit nem flag ein der gesetzt wird, z.b. durch einen befehl an den server vielleicht besser vom host, dass nicht unbedingt die clients den server abschalten können 🙂 ) und das halt überprüft wird und wenn es einen bestimmten wert hat, der server eben beendet wird. Was ist daran so dumm?


Anmelden zum Antworten