对于我的当前项目,我需要通过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调用之间底层流有时会关闭,导致我错过了数据的最后一部分。