假设我创建了一个HttpWebRequest,并将其称为GetResponseStream方法。当我尝试读取流时,是否所有数据都已经复制到本地缓冲区,或者它是通过读取数据来工作的吗?
发布于 2013-02-27 06:00:29
GetResponseStream方法返回Stream抽象类的特定实现,它是一个NetworkStream。这种类型的流被绑定到套接字。它是指向TCP/IP套接字数据流的指针。如果服务器已经向其中写入了一些数据,则当客户端开始从该流中读取数据时,如果您尝试读取比当前可用数据更多的数据,则客户端将只读取套接字上可用的数据,直到服务器向套接字写入更多数据为止。
因此,如果我们假设服务器已经向套接字写入了5个字节,如果您尝试从客户端的流中读取5个字节,您将能够检索到这5个字节,但是如果您尝试读取6个字节,则读取操作将阻塞,直到服务器再发送一个字节或超时。
发布于 2012-07-07 00:10:15
如果您查看that example,您会发现您需要首先调用.GetResponse(),这将回答您的问题。
https://stackoverflow.com/questions/11365749
复制相似问题