John Serink wrote:

Ok, if you're using sockets I strongly recommend you ALWAYS using
sysread and syswrite as they baypass standard IO buffereing.

Be careful with sysread, it cand and will return partial reads, you MUST
be prepared for that.

Unless you want your program to block on sysread, you should use
IO::Select. Now, from Stein's nEtwork Programming with Perl, as File
handle is ready for reading when:
1. There is at least 1 byte of data in the file handle's input buffer,
2. There is an EOF on the file handle, the next call to sysread will
return 0 in this case. With normal files this occurs at EOF, with
sockets this occurs when the remote peer closes the connection,
3. There is a pending error on the socket. The next sysread call will
return undef and the error will be in $!.



So, what you are interested in is 2 or 3 or both.
Cool. Thanks for the tip John. When you mean partial reads, you don't mean to say that any form of data corruption is taking place right? It's just that I will have to be responsible for putting Humpty Dumpty (aka the fragmented data) back together again?

_______________________________________________
Perl-Win32-Users mailing list
[email protected]
To unsubscribe: http://listserv.ActiveState.com/mailman/mysubs

Reply via email to