opi: Socket auslesen und Datenverarbeitung

Beitrag lesen

Hallo Siechfred,

Ich vermute mal, dass du auf Folgendes hinauswillst:

Wenn du mehrere eingehende Verbindungen nacheinander entgegennehmen willst, geschieht das ja für gewöhnlich so:

nicht so ganz.

Ich habe einen Agenten auf jedem Server laufen.

while (my $client = $server->accept()) {
   my $q = <$client>;
   # Anfrage Verarbeiten
   print $client "meine Antwort";
   # ca. 600kb werden zurück gesendet
}

Und hier schicke ich meine Anforderung an den Agenten:

my $q = "anfrage an der Agenten";

my $socket = IO::Socket::INET->new(
                PeerAddr => $ip,
                PeerPort => $service,
                Proto    => "tcp",
                Type     => SOCK_STREAM
)

print $socket "$q\n";

while (<$socket>) {
   # [1] Antwort bearbeiten
}

close $socket;

[1] genau diese Stelle meinte ich. Die Daten müssen verarbeitet und
in mehrere Dateien weggeschrieben werden.

Wäre es also ratsamer, die Daten zunächst in ein Array oder einen
Hash zu packen oder kann ich sie auch sofort verarbeiten und
wegschreiben?

while (<$socket>) {
   last if /^EOF/;
   # push @$arr, $_;
   # oder
   # Verarbeitung und Wegschreiben
}

Greez,
opi

--
Selfcode: ie:( fl:( br:^ va:) ls:] fo:) rl:( n4:? ss:| de:] ch:? mo:|