0

在尝试了一个 tTCPClient 之后,我创建了一个到流 API 的 httpwebrequest 连接,但它从未结束过工作。我关心的是我的代码是否正确,我实际上是在读取新数据并且是否保持连接。最初我一直在读入缓冲区,并在最大大小后将所有内容加载到文件中,但认为读取一行会更简单,因为每个条目都由换行符分隔发送。

rStream = webrequest.GetResponse().GetResponseStream
rStream = New GZipStream(rStream, CompressionMode.Decompress)
If rStream.CanRead then
   Dim bufferPit(8100) as byte
   Do
      Dim dStream as StreamReader = New StreamReader(rStream)
      While not dStream.EndOfStream
          rData = dStream.ReadLine()
          pTools.appendToFile(rData)
      End While
   .....//some other exception handling
   Loop While rStream.CanRead

看起来我一直在阅读,但不确定我是否在这里阅读冗余数据。还有一个问题是,如果我要使用线程来 appendToFile,那会保持与流的连接吗?

4

1 回答 1

1

你在滥用CanRead。最好再看看文档。CanRead 只告诉您流是否可以被读取,而不是它是否有数据,因此不应该在循环条件下使用。

此外,您需要在完成后关闭流。

于 2012-04-03T21:24:21.690 回答