0

i want to transfer data over sockets and currently i am creating a memory stream.

i can also use a network stream.

Can anyone please help me understand the difference between c# network stream and memory stream?

4

3 回答 3

3

ANetworkStream与套接字直接相关;它不知道自己的长度,你无法寻找,读/写函数直接绑定到接收/发送API(因此,读和写完全不相关)。它可能会超时,如果等待更多数据,读取可能需要相当长的时间。

AMemoryStream基本上是一个本地的包装器byte[]。它有一个已知的长度(可以改变),你可以寻找,读/写直接相关:两者都增加相同的位置光标,你可以写一些东西,倒带,然后读它。所有的操作都非常及时。

问“有什么相似之处”可能更容易,这很简单:两者都有一个读/写 API,因为它们都是Stream.

于 2012-09-07T10:30:22.153 回答
0

两个流都是 Stream 的派生,这些类出于不同的目的而变形

于 2012-09-07T10:30:19.770 回答
0

根据我的理解,网络流从网络接口读取,如果你使用内存流(我的意思是,在同一场景中),所有数据将首先加载到内存中(我假设它读取到实际的末尾流),然后读取操作将从内存中读取。

内存流上发生的第一个读取操作,需要将所有数据加载到内存中。

在网络流的地方,您可以在数据到达时读取它们。

于 2012-09-07T10:30:43.353 回答