If readChar() reads from a connection and the specified number of bytes are not all available, it returns with what it can find. That's as documented (further down the help page) and it's what the low-level recv() does. However, for a blocking connection, wouldn't it be more natural to retry until the requested data are available? -thomas -- Thomas Lumley Professor of Biostatistics University of Auckland [[alternative HTML version deleted]]