#!/usr/bin/perl -w # udp server use strict; use IO::Socket; use Cwd; use TIE::File; ### Pfad und Hilfsvariablen intitialisieren my $aktuellesdir; my $dirprefix; #my $dirbin; my $line; ## Hilfsvariable fuer line my $quellfile="empfangsfile.txt"; my $EMPFANG; ### UDP Variablen initialisieren my ($sock, $PORTNO, $MAXLEN, $nachricht); $PORTNO = 4712; #$PORTNO = 0; $MAXLEN = 1024; my $laenge; my $startzeit; $sock = IO::Socket::INET->new ( LocalPort=>$PORTNO, Proto=>'udp') or die "socket: $@"; print "Warte auf UDP NAchricht auf Port $PORTNO$/"; ### Pfade initialisieren $aktuellesdir=getcwd; $dirprefix="$aktuellesdir/"; ### Datei vorbereiten my $file = "$dirprefix"."$quellfile"; my @array_quellfile; my $n_recs_array_quellfile; if ( -e $file ) { tie @array_quellfile, "Tie::File", $file || die "cannot open $file $!"; $n_recs_array_quellfile = @array_quellfile; } else { system(`touch $file`); tie @array_quellfile, "Tie::File", $file || die "cannot open $file $!"; $n_recs_array_quellfile = @array_quellfile; } while ($sock->recv($nachricht, $MAXLEN)) { $laenge = length($nachricht); $startzeit = scalar localtime; print "Zeitstempel: $startzeit : Laenge: $laenge : Der Client sagte ''$nachricht''$/"; #$sock->send("Zeitstempel: $startzeit : Du sagtest: ''$nachricht'' zu mir $/"); # $sock->send("Zeitstempel: Du sagtest: ''$nachricht'' zu mir $/"); #### print "$startzeit Der Client sagte ''$nachricht''$/"; #### $sock->send("Du sagtest: ''$nachricht'' zu mir $/"); $sock->send("Zeitstempel: ''$startzeit'' : Du sagtest: ''$nachricht'' zu mir $/"); push(@array_quellfile, $nachricht); } die "recv: $!"; untie @array_quellfile;