对于我当前的项目,我需要通过 tcp/ip 套接字连接请求 XML 数据。为此,我正在使用 TcpClient 类:
Dim client As New TcpClient()
client.Connect(server, port)
Dim stream As NetworkStream = client.GetStream()
stream.Write(request)
stream.Read(buffer, 0, buffer.length)
// Output buffer and return results...
现在,对于小的响应,这工作得很好而且花花公子。但是,当我开始接收更大的数据块时,数据似乎会以突发方式通过套接字连接推送。发生这种情况时,stream.Read 调用仅读取第一个突发,因此我错过了其余的响应。
处理这个问题的最佳方法是什么?最初我试图循环直到我有一个有效的 XML 文档,但我发现在 stream.Read 调用之间,底层流有时会被关闭,我会错过数据的最后一部分。