Re: [IO::Socket::INET] socket serverseitig sauber schliessen



* Lars Uhlmann [2005-12-12]:

Hallo Lars,

ich nehme mal an, dass das Beispiel was du gepostet hast und es
angeblich nicht tun sollte, bei dir auch getan hätte, wenn du es denn
selbst mal ausprobiert hättest, oder?
Diese Tatsache hätte dir dabei helfen können selbst zu entdecken, dass
hier das Problem beim fork() liegt.

>| while ($running)
>| {
>| $socket_child = $socket_server->accept();

Hier bekommt der Vaterprozess einen Handle für das Socket.

>| $pid = fork();

Und da er ihn an sein Kind vererbt hat, haben wir jetzt zwei davon.

>|
>| if ($pid)
>| {

Hier würde es sich anbieten, dass der Vater seinen zurückgibt, weil er
ihn ja nicht braucht:

close $socket_child;

>| wait();
>| #$running = 0;
>| }
>| else
>| {
>| my $received = <$socket_child>;
>| print $socket_child $received;
>| close ($socket_child);

Womit hier dann der letzte zurückgegeben würde und das Betriebssystem
damit den Socket schliessen könnte.

>| exit(0);
>| }
>| };
>| close ($socket_server);
> `-----

> Die Verbindung mit »tcpdump« beobachtet, zeigt, daß bei 'close()' kein
> (TCP) <FIN> vom server kommt. Zum Test setzte ich im parent thread die
> Abbruchvariable nach 'wait()' auf Ende und damit wird auch ein <FIN> vom
> server gesendet. Das will ich aber nicht, der server soll schön laufen
> bleiben.

Wenn der Perl-Prozess sich beendet, dann wird auch das Handle des
Vaterprozesses ungültig und der Socket geschlossen.

Gruß
Chrisitan

--
Die Römische Regel:
Derjenige, der sagt: "Es geht nicht", soll den nicht stören, der's
gerade tut.
http://www.lackas.net/ Perl Delphi Linux MP3 Searchengines Domainchecker
.



Relevant Pages

  • Re: JavaAnwendung auf Server
    ... > auf dem server läuft und auf der client-seite nur ein browser ... Je nachdem kann man mit einem Browser schon recht gut handhabbare ... Prev by Date: ... Next by Date: ...
    (de.comp.lang.java)
  • Re: Errori di make con Fink e server audio.
    ... come faccio a disabilitare il server audio di default di OS ... l'output verso un server esound. ... Prev by Date: ... Next by Date: ...
    (it.comp.macintosh)
  • Re: wie sieht die =?ISO-8859-15?Q?Minimall=F6sung?= aus?
    ... > freigegeben ist und über TCP/IP arbeitet, ... > Server kann und das was übertragen wird sind nur reine Demodaten, ... Prev by Date: ... Next by Date: ...
    (de.comp.security.firewall)
  • Re: Zeichensatzdeklaration
    ... keinesfalls im Sinne des Usenet. ... nicht vorhandene Validation durch die Server ist ein solcher Mangel ... Prev by Date: ... Next by Date: ...
    (de.comp.os.unix.linux.misc)
  • Re: ASP.NET Hosting mit Server4You
    ... einfach die Erstellung mit dem VWD und den Vorlagen geht, ... Wie schaut denn die Filestruktur auf dem Server aus? ... Prev by Date: ... Next by Date: ...
    (microsoft.public.de.german.entwickler.dotnet.asp)