假设我创建了HttpWebRequest
并将其称为GetResponseStream
方法。当我尝试读取流时,所有数据已经被复制到本地缓冲区,或者它是否通过读取线路时读取它?
答案 0 :(得分:2)
GetResponseStream方法返回Stream
抽象类的特定实现,它是NetworkStream
。这种类型的流绑定到套接字。它是指向TCP / IP套接字流的指针。如果服务器已经向其写入了一些数据,那么当客户端开始从该流中读取数据时,如果您尝试读取的数据多于当前可用的数据,则它将只读取套接字上可用的数据并阻塞,直到服务器写入更多数据为止插座。
因此,如果我们假设服务器已经向套接字写入了5个字节,如果您尝试从客户端上的流中读取5个字节,则可以检索这5个字节,但是如果您尝试读取6个字节读操作将阻塞的字节,直到服务器再发送一个字节或超时为止。
答案 1 :(得分:-1)
如果你看that example,你会发现需要先致电.GetResponse()
,这会回答你的问题。