我想收到一串数据。所以有时数据可能会枯竭。在那种情况下,如果Receive
方法返回到目前为止所收到的内容,那将会很不错。将流式传输Socket.Receive块,直到它填充缓冲区?
当我使用.Net Socket
,我把它称为Receive
方法,将调用块,直到它能够完全填充缓冲区?或者一旦能够返回至少1个字节,它会立即返回? (假设套接字未关闭)
难道问题,如果我通过一个尺寸参数明确?异步方法BeginReceive
会有什么影响吗? (我猜在这两种情况下,行为将是相同的)
当阅读this answer时,似乎你应该总是期望缓冲区被填满,因为它建议你做一个while (bytesRead == bytesRequested)
。但the MSDN documentation中的一个示例使用了一个while (bytesRead > 0)