[Dresden-pm] Re: Massives Problem mit IO::Socket und HTTP

Mike Reiche su-root at web.de
Fre Mar 12 06:30:19 CST 2004


Am Freitag, 12. März 2004 11:25 schrieb Steffen Schwigon:
> Mike Reiche <su-root at web.de> writes:
> > Hallo Mailingliste,
> >
> > ich hab vor ein paar Tagen einen Chat-Server geschrieben, der
> > HTTP-Anfragen vom Browser annimmt und den Chat in einem Stream darstellt.
>
> Ich versteh noch nicht ganz, was ein "Chat-Server" ist, und was ein
> Browser dabei tut.

Ein Web-basiertet Chat-Server mit dem man sich via Browser darauf verbinden 
kann, die Chat-Text kommt dann über ein Stream mittels AUTOFLUSH direkt an 
den Browser. Dabei hört die Seite nie auf zu laden. Ist die gängigste Methode 
einen Web-basierten Chat zu schreiben. Wie t2bc, chatcity etc.

> Was für'n Protokoll machst Du da konkret?

Ich lese den HTTP-Header aus und sende HTTP zurück.

> Hast Du mit dem TELNET auch auf den Port Deines Servers zugegriffen
> oder nur den Telnetport probiert?

Wenn mein Server auf Port 1234 läuft, habe ich mich natürlich mit

# telnet hostname:1234 verbunden

und danach meine HTTP-Anfragen per Hand eingegeben, dann funktioniert es 
wunderbar.

> Firewall-Regeln könnten ja auch inhaltsbezogen sein.
> Was für'n Provider hängt dazwischen?

Tiscali.

> Eine abgespeckte Version solltest Du überhaupt bauen, also auch für
> Dich selbst, um Dein Problem einzugrenzen. Also z.B. erstmal nur die
> rohe Socketkommunikation bauen; nachdem das geht, darüber HTML
> austauschen, danach Inhalte verpacken, usw.
>
> Dann ist der Problempunkt vielleicht klarer.

Das habe ich schon gemacht, ich habe ja auch ältere Versionen versucht, es ist 
wie verhext. Seitdem habe ich auch sonst nichts am System verändert, weder 
Upgrade noch sonst irgendwas softwaretechnisches.

Ich lege mal den Server bei (wenn ich das darf).

Nehmt am besten Port 1234.
Danach müsst ihr die Ausgabe unter Beobachtung halten, es werden hin und 
wieder Fehler auftreten aber die sind nicht wesentlich. 
Man verbindet sich dann via Browser an "http://hostname:1234" und dahinter 
kommen dann evt. Variablen mit "/?cmd=connect&username=mike" (etc.)
Wichtig ist aber dass der HTTP-Header ausgedruckt wird, man erkennt ihn am 
"GET" zu Beginn.

Mein Problem ist, dass der Server bei "Objekt erstellt.." stehenbleibt und die 
HTTP-Anfrage leer ist. Nur netzintern funktioniert es, als gäbe es übers 
Internet ein Timeout.

Es ist mindestens Version 5.6.1 vorrausgesetzt.

Danke und Grüße,

Mike
-------------- nächster Teil --------------
Ein Dateianhang mit Binärdaten wurde geschreddert...
Dateiname   : best-server.perl
Dateityp    : application/x-perl
Dateigröße  : 10861 bytes
Beschreibung: nicht verfügbar
URL         : http://mail.pm.org/pipermail/dresden-pm/attachments/20040312/40c7edea/best-server.bin