Thread Frage

Sockets, TCP/IP, (XML-)RPC und ähnliche Themen gehören in dieses Forum
DMD-OL
User
Beiträge: 104
Registriert: Samstag 26. Dezember 2015, 16:21

Thread Frage

Beitragvon DMD-OL » Mittwoch 14. Dezember 2016, 12:04

hey
ich hab da mal noch eine frage:
in einem standard server code mit while true, accept(), client.close() und socket.close() ist socket.close()
nur in verbindung mit einem timeout() (oder ähnlichem) von nutzen, oder? sonst läuft doch immer accept() und
der socket bleibt sowieso geöffnet. stimmt das?
und noch eine viel wichtigere frage:
wieso kann man threads nicht komplett zerstören?
sonst kann man sich an alten serververbindungen, die schon einmal über einen thread gestartet wurden, immer wieder anmelden, obwohl die alt sind.
Benutzeravatar
BlackJack
Moderator
Beiträge: 31020
Registriert: Dienstag 25. Januar 2005, 23:29
Wohnort: Berlin
Kontaktdaten:

Re: Thread Frage

Beitragvon BlackJack » Mittwoch 14. Dezember 2016, 12:22

@DMD-OL: Man könnte auch eine Nachricht vorsehen die man dem Server schicken kann und die ihm sagt er soll sich beenden. Die muss nicht von einem entfernten Client kommen, sondern kann auch aus einem anderen Thread beim Server kommen. Und da die sich Daten teilen können, kann die Nachricht auch ein bei jedem Serverstart zufällig erzeugtes ”Geheimnis” enthalten, damit nicht irgendwelche Clients den Server einfach so beenden können.

Das Zerstören von Threads kann den Programmzustand zerstören. Und was nützt einem ein Programm in einem inkonsistenten Zustand‽ So etwas nicht-kooperativ sauber hinzubekommen ist halt nicht einfach. Und selbst wenn das für einen Bytecode-Interpreter vielleicht noch teilweise hinzubekommen wäre, setzt Python so einen ja nicht voraus.
Interestingly enough, the gods of the Disc have never bothered much about judging the souls of the dead, and so people only go to hell if that's where they think they deserve to go. Which they won't do if they don't know about it. This explains why it is important to shoot missionaries on sight.

Zurück zu „Netzwerkprogrammierung“

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder