Perl IPC

tr0nix

tr0nix

der-mit-dem-tux-tanzt
Hallo zusammen

Ich bastle ein bisschen mit einer Client/Server Applikation rum die ich zum ausprobieren baue. Dabei habe ich folgendes Problem: Wenn ein Client auf den Server connected, forkt der Server einen Subprozess. Bei einem zweiten Client ein zweiter Subprozess etc. pp.

Jetzt soll es möglich sein, von einem Client an den Server eine Information zu senden, welche der Server verarbeiten und ggf. an andere Clients weiterschicken kann.

Also wie bei einem IRC-Clienten:
Client --- schreibt Nachricht ---> Server
Server -- promoted Nachricht --> Alle Clients

Was für Lösungen gibts da mit IPC? Ich probierte zu forken mittels open(file, "|-"); was auch funktionierte, nur müsste ich dann irgendwie einen Filedescriptor für jeden Clienten öffnen können was ich nicht hingekriegt habe.

Grüsse
Joel

P.S. wenn ihr Sourcen wollt kein Problem
.
.
.
EDIT (autom. Beitragszusammenführung) :
.

Ach die Frage wird ja eh kommen :):
Code:
#!/usr/bin/perl -w
use strict;
use IO::Socket;
my $socket = new IO::Socket::INET(LocalHost=>'localhost',LocalPort=>6666,Proto=>'tcp',Listen=>SOMAXCONN,Reuse=>1);
my($clientservant, $pid, $buf, $counter);

while($clientservant = $socket->accept()) {
        $counter++;
        next if $pid = open(subClient, "|-");

        print "Verbindung $counter offen!\n";
        while (defined($buf = <$clientservant>)) {
                print $clientservant uc $buf;
        }
} continue {
        unless($pid) {
                print "Verbindung $counter wird geschlossen..\n";
                close subClient;
                close $clientservant;
        }
}
 
Zuletzt bearbeitet:

Ähnliche Themen

Unix Webserver mit HTML Seite erstellen

Server und Client für TCP und UDP

ca. 1200 PDF-Dateien auslesen und bestimmte Daten in eine CSV-Datei speichern

"send: Cannot determine peer address" nach Timeout mit UDP Server -Perl Socket eval{}

Samba 4.1.11 Domänen anbindung funktioniert nicht !!!

Zurück
Oben