Thread Wie mit blockierenden Funktionen umgehen?: Socket recv
(8 answers)
Opened by HuberDe at 2006-12-18 12:07
Hallo zusammen,
ich habe das Problem, dass ich unter Windows mit den Sockets arbeite. Nun habe ich von Zeit zu Zeit das Problem, dass ich von meinem Zielgerät keine Antwort mehr bekomme und somit meine recv Funktion auf immer und ewig stehen bleibt, da die socket funktionen in Windows blockierend sind und sich das meines Wissens nach auch nicht ändern lässt. Daraufhin habe ich die Funktion in einen Thread ausgelagert, damit ich über verschiedene Prüfmethoden den Thread abschießen kann, wenn er eine zeit lang nicht antwortet und somit an der recv Funktion wartet. Dies habe ich mit einem Signalhandler versucht, musste jedoch festellen, dass die neuen Signalhandler nur noch greifen, wenn perl die aktuelle aufgabe abgearbeitet hat. Somit kann ich ihn mit einem Signal auch nicht aus der recv Funktion raus holen. Weiß irgendjemand wie ich aus einer blockierenden Funktion dieser Art rauskomme? Danke, Denis |