是什么Socket.Send和Stream.Write之间的区别? (关于为tcp IP连接)(

2019-09-20 03:42发布

在处理服务器/客户端的连接,我已经看到了这两个没有任何明显的优势,要么有效地使用,但我怀疑他们会同时存在,如果没有发现任何已知的优点,以一种或另一种。 有谁知道两者之间有什么明显的区别? 帮助将不胜感激,谢谢。

Answer 1:

Socket.Send是数据的原始发送直接通过WINSOCK层... Stream缓冲和处理数据,您发送。 它通常用于在您需要的流一样的功能的情况。 这里也有一些额外的开销那里,很明显。 相较于Send ,这方面的开销包括创建一个新的类来管理一个“流”,并引入一对夫妇和你之间的间接层Socket.SendNetworkStream.Write最终只是调用Socket.Send ; 但是这是一个偶顶置下来的层。

还有更多的工作来获得成立,通过使用流NetworkStream类型。

如果当然,流也可以是双向的,这意味着你可以同时读取和写入。 您可以从一个插座与完全正常读取Receive方法。

使用SendReceive直接连结你插口。 如果使用的是Stream -衍生物,你从分离Socket ,并免费使用方法/与工作类Stream



文章来源: What is the difference between Socket.Send and Stream.Write? (in relation to tcp ip connections)