我想接收数据流。因此,有时数据可能会枯竭。Receive
在这种情况下,如果该方法返回它迄今为止收到的内容,那就太好了。
当我使用 .NetSocket
并调用它的Receive
方法时,该调用是否会阻塞,直到它能够完全填满缓冲区?或者它会在它能够返回至少 1 个字节后立即返回吗?(假设套接字未关闭)
如果我明确地传递一个大小参数有关系吗?异步方法BeginReceive
会有什么影响吗?(我猜这两种情况下的行为都是一样的)
阅读此答案时,您似乎应该始终期望缓冲区被填充,因为它建议您执行while (bytesRead == bytesRequested)
. 但是MSDN 文档中的一个示例使用了while (bytesRead > 0)