Hi, I'm doing a SIP server (listening in TCP) so I receive messages as the following: ---------------------------------------------------------- INVITE sip:user@ip SIP/2.0 CRLF From: xxxxx CRLF To: xxxxx CRLF Content-Lenght: 235 CRLF CRLF body body body body body body body body body body body body body body body body body body body body body body body body body body body body body body body body body body body body body body body body body body body body body body body body body body body body body body body body body body body body body body ---------------------------------------------------------- I receive and parse correctly the headers and when I detect an empty line I must read the number of bytes indicated in "Content-Length" header (235 the example). This is like SMTP or HTTP. I wonder which method is better in order to receive the body: io.read or io.readlines. io.read blocks after read the 235 bytes while io.readparti **** io.read Reads at most length bytes from the I/O stream (blocks). **** io.readpartial Reads at most maxlen bytes from the I/O stream. It blocks only if ios has no data immediately available. It doesn block if some data available. The code I use to read the body is: begin request.body = io.readpartial(request.hdr_content_length) rescue EOFError return end For now it works perfectly in both ways but there is an obvious difference: With io.readpartial my code reads all the bytes indicated in Content-Length (235) just if they come "together", but if they come "discontinnuated" io.readpartial return with the read bytes (in the example it can be less than 235 bytes). Note that I don't use a loop for io.readpartial. With io.read the code blocks until read 235 bytes. If the data comes "not together" it waits for the 235 bytes. For now io.readpartial works perfectly and I like it since there could be SIP error (a client sends a body with less bytes than "Content-Length" says) and in this way I can detect it inmediately. But I just do my test in localhost and so, not in real network which can be congested, etc. Any opinion with this please? Thanks a lot. -- IƱaki Baz Castillo