avwrap als Download verfuegbar (was: Re: AW: Avanti: bind() failed)
Martin Butkus
m.butkus at tu-bs.de
Di Jul 29 17:04:55 CEST 2003
In message <5141A3C5222 at buch.biblio.etc.tu-bs.de> you write:
Hallo Herr Berger,
> Nicht korrekt: TIME_WAIT ist ein Zustand von TCP/IP
> Verbindungen, d.h. eine konkrete Kombination von
> Server- und Client Ports- und Addressen ist eine gewisse
> Zeitlang nicht moeglich.
Da haben Sie natürlich recht, der Standard erzwingt nicht, daß
der Port komplett gesperrt wird. Das würde allerdings erfordern,
daß das Betriebssystem über das Ende eines Prozesses hinaus die
offenen Connections verfolgt, mithin einen wie auch immer gearteten
Eintrag in der Prozeßtabelle beibehalten müßte. Eine Mühe, die
sich die Programmierer scheinbar nur ungern machen.
Ich kenne dasselbe Verhalten jedenfalls aus eigener Erfahrung
nicht nur unter Windows, sondern auch unter verschiedenen
Unix-Systemen, (und nicht nur unter Allegro).
> > Um eine vorläufige Abhilfe wegen der Abstürze unter Windows zu
> > schaffen, möchte ich einen Wrapper für den avanti-cl bauen,
> > der ja - soweit ich Herrn Eversberg da richtig verstanden habe -
> > das Speicherleck nicht aufweist.
Eine erste Version dieses Wrappers steht nun unter folgender URL
zum Download zur Verfügung:
http://ftp.allegro-c.de/ac21/avanti-w/avanti-cl/avwrap.pl
Dabei handelt es sich der kürzeren Entwicklungszeit wegen
um ein Perl-Skript. Je nach Interessenlage hier auf der Liste
kann ich beizeiten noch eine C-Implementation nachliefern.
Benötigt wird Perl der ab Version 5.8.0, dieses gibt es zum Download
unter der URL
http://www.activestate.com/Products/Download/Get.plex?id=ActivePerl&_x=1
Am Anfang des Skripts sind einige Einstellungen vorzunehmen
(insbesondere der Pfad zu avanti-cl). Die Stelle ist entsprechend
mit Kommentaren versehen.
Nach dem Anstarten per Doppelklick läuft der Wrapper in einer DOS-Box,
und nimmt Requests wie üblich auf Port 4949 entgegen.
Logging-Meldungen werden auf Standard-Error ausgegeben,
und können (unter Win NT/2000/XP) per Redirection in eine
Logdatei umgeleitet werden. Aufrufsyntax: "perl avwrapper.pl 2> logdatei".
Der Wrapper ist getestet unter Windows XP und Windows 98.
Beim Einsatz in Verbindung mit dem Web-Frontend "acphp" hat sich
jedoch ein Fehler im avanti-cl gefunden, und zwar funktioniert das
"Qrix"-Kommando nicht korrekt. Das hat zur Folge, daß bei acphp
die HTML-Formatierung der Registeranzeige nicht funktioniert.
Herr Eversberg hat den Fehler bereits lokalisiert; eine neue Version
des avanti-cl sollte das Problem in Kürze beheben. Bis dahin ist auf
einen Einsatz in Verbindung mit acphp abzuraten.
Laut Herrn Eversberg wird der fragliche Befehl im Perl-basierten
"acwww"-Frontend nicht verwendet. Das Zusammenspiel mit acwww wurde
aber noch nicht getestet.
Rückmeldungen und Fehlermeldungen sind selbstverständlich willkommen.
Freundliche Grüße,
Martin Butkus
Mehr Informationen über die Mailingliste Allegro