【发布时间】:2023-04-05 19:39:01
【问题描述】:
所以我最近正在做一些工作,当时有人告诉我,如果在网络流上执行 Stream.Read,该网络流是通过在 WebResponse 上调用 .NET 的 GetResponseStream 之一获得的,或者那些被缓冲的。
他是说,如果您要在您正在阅读的代码中设置断点,您就不会停止网络流量。我觉得这很奇怪,但也希望这是真的。这是如何运作的?它甚至准确吗?
using (Stream webResponseStream = this.webResponse.GetResponseStream())
{
byte[] readBuffer = new byte[bufferSize];
int bytesRead = webResponseStream.Read(readBuffer, 0, bufferSize);
while (bytesRead > 0)
{
bytesRead = webResponseStream.Read(readBuffer, 0, bufferSize);
// If I put a breakpoint here, does network activity stop?
}
}
【问题讨论】:
-
什么样的网络流?它是从哪里来的?
-
TCP,我确实打开了一个 WebRequest,一个 POST 到 xyz.com,然后我执行 EndGetResponse(),然后我得到 webResponse 的 GetResponseStream,并在它上面调用 .Read(),直到它不再显示
-
发布您的确切代码示例,它将提高可读性
-
那是不是“TCP”,那是HTTP。
-
是的 HTTP over TCP,更准确地说。
标签: c# stream io network-protocols buffered