Leser: 23
cat ./datei1 - | nc meinappserver 8080
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
#!/usr/bin/perl; use strict; use warnings; use IO::Socket::INET; my $file='./datei1'; my $server='meinappserver'; my $port='8080'; open(my $in,'<',$file) or die("ERROR open File $file ($!)\n"); my $out=IO::Socket::INET->new("$server:$port") or die("ERROR open Socket $server:$port\n"); $out->print($_) while(<$in>); $out->close(); close($in);
2010-10-28T15:07:16 topegSo geht es gundsätzlich:
Code (perl): (dl )1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17#!/usr/bin/perl; use strict; use warnings; use IO::Socket::INET; my $file='./datei1'; my $server='meinappserver'; my $port='8080'; open(my $in,'<',$file) or die("ERROR open File $file ($!)\n"); my $out=IO::Socket::INET->new("$server:$port") or die("ERROR open Socket $server:$port\n"); $out->print($_) while(<$in>); $out->close(); close($in);
Alles weitere liegt bei dir.
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
#!/usr/bin/perl;
use strict;
use warnings;
use IO::Socket::INET;
my $file='./datei1';
my $server='meinappserver';
my $port='8080';
open(my $in,'<',$file) or die("ERROR open File $file ($!)\n");
my $out=IO::Socket::INET->new("$server:$port") or die("ERROR open Socket $server:$port\n");
$out->print($_) while(<$in>);
#Schleife, für die Kommunikation
while(defined(my $msg_out = STDIN->getline)) {
#Nachricht verschicken
print $out $msg_out; // ist das genauso wie $out->print($_) ?
#Nachrichten empfangen
my $msg_in = <$socket>;
#Nachricht ausgeben
print $msg_in;
}
#Socket schließen
$out->close || warn "Fehler beim schließen des Sockets: $@";
warn "Verbindung beendet..\n";
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
#!/usr/bin/perl; use strict; use warnings; use IO::Socket::INET; my $file='./datei1'; my $server='meinappserver'; my $port='8080'; open(my $in,'<',$file) or die("ERROR open File $file ($!)\n"); my $out=IO::Socket::INET->new("$server:$port") or die("ERROR open Socket $server:$port ($@)\n"); # den Inhalt der Datei versenden $out->print($_) while(<$in>); # die Datei schließen wenn sie nicht mehr gebraucht wird. close($in) or die("ERROR Close File $file ($!)\n"); #Schleife, für die Kommunikation while(defined(my $msg_out = <STDIN>)) { #Nachricht verschicken print $out $msg_out; # ist das genauso wie $out->print($_) ? # ja ist es, nur ist hier "$_" "$msg_out" #Nachrichten empfangen my $msg_in = <$socket>; #Nachricht ausgeben print $msg_in; } #Socket schließen $out->close || warn "Fehler beim schließen des Sockets: $@"; # STDERR schreiben... warn "Verbindung beendet..\n";
1 2 3 4 5 6 7 8 9 10 11 12 13 14
# Nachrichten empfangen # alle Nachrichten, die gesendet werden holen. my $msg_in=''; eval{ # wenn alarm ausgelöst wird, # dann "die" und verlasse damit den eval-Block local $SIG{ALRM}=sub{ die(); }; while(1) { alarm(1); # eine Sekunde bis Abbuch... $msg_in.=<$socket>; alarm(0); # alarm abschalten } };