## Sende-Empfangsschleife while(1) { fill_with_tie(); ## Sendedaten aus Datei lesen print "Laenge sendung: length($sendung) \n\n"; if ( length($sendung) == 0 ) { $sendung = 'init'; } # if print "sendung: $sendung\n\n"; #Variante 1 #send(SOCK, $sendung, 0, $dest_addr) or die "send() gescheitert: $!\n"; #Variante 2 $sock->send($sendung) or die "sendung gescheitert: $!\n"; #=pod $startzeit = scalar time(); print "start: $startzeit \n"; $hilfe = $startzeit +3 ; print "hilfe: $hilfe \n"; $timeout = scalar time(); unless ( $hilfe < $timeout ) { #sleep(4); print "in Schleife \n\n"; $timeout = scalar time(); print "timeout:: $timeout \n"; $sock->recv($data, MAX_MSG_LEN) or die "empfang gescheitert $!\n"; # recv(SOCK, $data, MAX_MSG_LEN, 0) or die "receive() gescheitert $!"; } #=cut =pod eval { local $SIG{ALRM} = sub { die "Timeout\n" }; alarm(TIMEOUT); $sock->recv($data, MAX_MSG_LEN) or die "empfang gescheitert $!\n"; alarm(0); }; if ($@) { die $@ unless $@ eq "Timeout\n"; warn "Timeout !!\n"; } # if =cut fill_empfang_file($data); ## Empfang in Datei schreiben chomp($data); print "Empfangen: $data \n"; sleep(3); } # while