0

假设我创建了一个HttpWebRequest并调用它的GetResponseStream方法。当我尝试读取流时,是否所有数据都已复制到本地缓冲区,或者当它通过线路时它是否通过读取它来工作?

4

2 回答 2

2

StreamGetResponseStream 方法返回抽象类的特定实现,它是一个NetworkStream. 这种类型的流绑定到一个套接字。它是一个指向 TCP/IP 套接字流的指针。如果服务器已向其写入了一些数据,当客户端开始从此流中读取数据时,它将仅读取套接字上可用的数据,如果您尝试读取的数据多于当前可用的数据,则会阻塞,直到服务器写入更多数据到插座。

因此,如果我们假设服务器已经将 5 个字节写入套接字,如果您尝试从客户端的流中读取 5 个字节,您将能够检索这 5 个字节,但如果您尝试读取 6 个字节,则读取操作将阻塞,直到服务器再发送一个字节或超时。

于 2013-02-26T22:00:28.657 回答
-1

如果您查看该示例,您会发现您需要先致电.GetResponse(),这将回答您的问题。

于 2012-07-06T16:10:14.967 回答