in reply to Re^3: unbuffered read from socket
in thread unbuffered read from socket
Good point Errto, you drove me to dig out the Perl Cookbook recipe 7.23, which, to my horror, also does a sysread() of one character at a time (and with no performance caveat). I wonder if anyone has encapsulated a nice clean buffering scheme to work in harness with select() and sysread()? Update: quick look on CPAN found nothing, but Lincoln Stein's book "Network Programming with Perl" (Chapter 13) features an IO::Getline module that seems to be what I'm after, namely "line-oriented reading from sockets/handles with access to internal buffer".
One important point made in this recipe is that you must use unbuffered sysread() (and not the buffered I/O functions) with select() because select's response does not reflect user level buffering.
Update: Found this interesting bit of history from comp.lang.perl.moderated (15-Jan-1999) describing a mythical sysreadline() function requested by Larry but, alas, never implemented.
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^5: unbuffered read from socket
by Errto (Vicar) on Dec 29, 2004 at 05:03 UTC | |
|
Re^5: unbuffered read from socket
by Forsaken (Friar) on Dec 29, 2004 at 11:18 UTC |