Thread Client verbindet sich aber: holt nicht immer Daten (2 answers)
Opened by styx-cc at 2006-07-30 13:26

Dubu
 2006-07-31 15:35
#37348 #37348
User since
2003-08-04
2145 Artikel
ModeratorIn + EditorIn

user image
Nur Kleinigkeiten:
- Das autoflush() muss nur einmal auf dem Socket ausgefuehrt werden (und seit IO::Socket Version 1.18 ist es automatisch gesetzt).
- "\n\r" ist falshc. Die Reihenfolge stimmt nicht, es muss CR-LF sein, nicht LF-CR. Und um keine Probleme mit einem IO-Layer zu bekommen, der \n alleine in CR-LF umwandelt, sollte man besser die numerischen Konstanten benutzen ("\015\012") oder gleich die Konstanten/Variablen CRLF resp. $CRLF aus IO::Socket(::INET) importieren:
Code: (dl )
1
2
3
4
use IO::Socket::INET qw/:crlf/;
...
print $socket "moderatorlogin passwort$CRLF";
...

Siehe dazu auch Socket

Eine moegliche Fehlerquelle ist aber, dass du zeilenweise vom Socket einliest. Wenn die Gegenstelle ihre Antwort nicht mit einem Zeilenende abschliesst, kehrt dein <$socket> erst beim Abbruch der Verbindung zurueck, d.h. du siehst die Antwort nie. Evtl. arbeitest du besser mit $socket->recv(...). Siehe dazu perldoc -f recv.

View full thread Client verbindet sich aber: holt nicht immer Daten