Hallo,Nach längerer Zeit bin ich mal wieder dazu gekommen ein wenig in Perl zu Programmieren. Jetzt wollte ich ein kleines Programm schreiben mit einem Server und mehreren Clients die sich zu selbigen connecten. Einen zu verbinden ist schon kein Problem, also bin ich bereit zu dem nächsten Schritt, mittels forks die verbundenen Clients in die entsprechende Schleife zu schicken. Jetzt ist die Frage, was passiert wenn ich per Client den Server beende? Werden die übrigen Kinder automatisch beendet, wenn der Parent beendet wird?
Hier mal ein Ausschnitt aus dem Code... Falls ihr auch andere Verbesserungsvorschläge habt, gerne her damit.
Danke, Lorgoth
while (($Timeout eq "false") && (my $Client = $Server->accept()))
{
if ($pid = fork){ sleep 2; }
elsif (defined $pid){
#Server may run and a connection to a client has been found
Messages::PrintToLog("Client Connected\n");
my $clientHandle = getpeername ($Client) or print "Could not identify Client: $!\n";
my ($port, $iaddr) = unpack_sockaddr_in($clientHandle);
my $clientIP = inet_ntoa($iaddr);
Messages::PrintToLog("Client IP: $clientIP \n");
my $answer = <$Client>;# or $answer = "nothing";
if ($answer eq "AdminUserLogin\n")
{
my $AdminReturn = AdminFunctions::MainCall($Client);
if ($AdminReturn eq "ShutDown")
{
$Timeout = "true";
}
}
}
}
Datum: 19.03.2007-23:00
