【发布时间】:2010-09-15 04:02:04
【问题描述】:
对于我当前的项目,我需要通过 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 调用之间,底层流有时会被关闭,我会错过数据的最后一部分。
【问题讨论】: