[lug-ld] Perl Sockets

Hakon Benner hakon at halbrot.de
So Jun 26 01:14:44 CEST 2011


So hier ... nach dem Tip gestern abend hab ich mal getestet. Das
übersichtlichste und für mich verständlichste Beispiel was ich gefunden hab
ist das folgende:

#!/usr/bin/perl -w
#
##########################
#
# Programm: Empfänger
#
##########################

use IO::Socket;
my $sock = new IO::Socket::INET (
                                 LocalHost => 'server',
                                 LocalPort => '7070',
                                 Proto => 'tcp',
                                 Listen => 1,
                                 Reuse => 1,
                                );
die "Could not create socket: $!\n" unless $sock;

my $variable;
my $new_sock = $sock->accept();

while (<$new_sock>) {
        $variable =  $_;
        print $variable;
}
close($sock);

# Ende #####################

#!/usr/bin/perl -w
#
##########################
#
# Programm: Sender
#
##########################

use IO::Socket;
my $sock = new IO::Socket::INET (
                                 PeerAddr => 'baby.creme',
                                 PeerPort => '7070',
                                 Proto => 'tcp',
                                );
die "Could not create socket: $!\n" unless $sock;

print $sock "Hello there!\n";

close($sock);

# Ende ######################

Das ist ganz toll, funktioniert auch über's Netz, aber nur ein mal, dann
muss ich den Empfänger wieder neu starten.

Hat jemand ne Idee wie das aussehen sollte wenn der Server, einmal
gestartet, wartet, bis ihm jemand was schickt, das ausgibt und dann wieder
wartet bis ihm jemand was neues schickt, dass dann wieder ausgibt .... Erst
wenn ihm der Sender den Text "Ende" sendet beendet der Empfänger.

Der Sender wird dabei einfach immer neu gestartet, also nach dem Senden des
Textes schließt der Sender den TCP Socket und das Programm ist beendet.

-- 
Hakon Benner-Stollowsky
Linux User Group Landau e.V. (http://www.lug-ld.de)
-------------- nächster Teil --------------
Ein Dateianhang mit HTML-Daten wurde abgetrennt...
URL: http://lists.lug-ld.de/mailman/private/lug-ld/attachments/20110626/8687ff79/attachment.htm