Thread IO::SOCKET::INET recv abbrechen
(3 answers)
Opened by burnersk at 2008-10-20 16:55
Hallo.
Ich habe mir mal so einen kleinen Deamon-'Server' gebastelt. Nun möchte ich gerne das recv abbrechen; oder zumindest wieder etwas senden könenn. Code (perl): (dl
)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 sub ChldExecute($) { my $client = shift || return (0); # Server Banner senden $client->send('INFO $Server: RSM3D$ $Revision$'); # Warte auf Request $client->send('AWTR Await request'); my $request = eval { local $SIG{'ALRM'} = sub { exit(1); }; my $reqtemp = ''; alarm(1); $client->recv($reqtemp, 2048); alarm(0); return ($reqtemp); }; # Request auswerten if (!$request || $request eq '') { # Fehler beim Empfang des Requests $client->send('ERROR Request not received'); $client->send('QUIT'); return (0); } else { # Request jetzt analysieren $client->send('ERROR Processing not implemented'); $client->send('QUIT'); return (0); } $client->send('ERROR Haeh???'); $client->send('QUIT'); return (1); } Wenn ich das mit $client->recv($reqtemp, 2048); auskommentiere, dann wird nach einer Sekunde der andere Text gesendet, andernfalls scheint der Client nach der Sekunde nichts mehr zu lesen. |