$| sockets und ungepufferter Input

07/07/2008 - 19:46 von Oli Schwarz | Report spam
Hallo,

folgendes möchte ich mit perl machen:

socket(SOCKET, )
connect(...)

while (<SOCKET>) {
tue etwas mit den Daten.
}

Leider verschickt die Gegenstelle Nachrichten ohne abschlieàŸendes
"". Nach dem obigen Verfahren puffert Perl scheinbar die Daten. Auch
ein $|=1 hilft nicht, da sich das wohl nur auf "Output" bezieht.

In der aktuellen Version meines Programmes lese ich die Daten per
read-Funktion. Das funktioniert.

Gibt es trotzdem eine Möglichkeit die Daten àŒber <SOCKET> ungepuffert zu
lesen?

Mfg Oli
 

Lesen sie die antworten

#1 Frank Seitz
07/07/2008 - 20:02 | Warnen spam
Oli Schwarz wrote:

folgendes möchte ich mit perl machen:

socket(SOCKET, )
connect(...)

while (<SOCKET>) {
tue etwas mit den Daten.
}

Leider verschickt die Gegenstelle Nachrichten ohne abschlieàŸendes
"". Nach dem obigen Verfahren puffert Perl scheinbar die Daten. Auch
ein $|=1 hilft nicht, da sich das wohl nur auf "Output" bezieht.

In der aktuellen Version meines Programmes lese ich die Daten per
read-Funktion. Das funktioniert.

Gibt es trotzdem eine Möglichkeit die Daten à¼ber <SOCKET> ungepuffert zu
lesen?



Deine Annahme ist falsch, dass es mit <SOCKET> nicht funktioniert,
weil der Input gepuffert wird.

Es liegt daran, dass der Diamant-Operator <...> bist zum
nàchsten Input Record Separator ($/) liest. Per Default ist
das ein Newline.

Werden deine Input Records mit einer anderen Zeichenfolge
getrennt, kannst du diese an $/ zuweisen. Andernfalls
kannst du den Diamant-Operator nicht nutzen.

Grüße
Frank
Dipl.-Inform. Frank Seitz; http://www.fseitz.de/
Anwendungen für Ihr Internet und Intranet
Tel: 04103/180301; Fax: -02; Industriestr. 31, 22880 Wedel

Ähnliche fragen