有人可以解释一下NetworkStream.BeginRead()吗?

时间:2013-04-28 22:41:34

标签: vb.net sockets networkstream

我正在努力弄清楚如何使用这种方法。更具体地说,我发现很难理解我应该用“回调”和“状态”参数做些什么。我一遍又一遍地阅读文档以及论坛中关于它的一些模糊的,远距离相关的线程。 任何帮助都会很棒!

1 个答案:

答案 0 :(得分:1)

您将网络流本身作为“状态”参数传递。

在回调中,您从“ar”参数中提取网络流,然后调用EndRead():

Dim stream As NetworkStream = CType(ar.AsyncState, NetworkStream)
Dim bytesRead As Integer = stream.EndRead(ar)

您的数据将位于您在BeginRead()调用中指定的缓冲区中。使用“bytesRead”来了解缓冲区中有多少数据。