在处理服务器/客户端的连接,我已经看到了这两个没有任何明显的优势,要么有效地使用,但我怀疑他们会同时存在,如果没有发现任何已知的优点,以一种或另一种。 有谁知道两者之间有什么明显的区别? 帮助将不胜感激,谢谢。
Answer 1:
Socket.Send
是数据的原始发送直接通过WINSOCK层... Stream
缓冲和处理数据,您发送。 它通常用于在您需要的流一样的功能的情况。 这里也有一些额外的开销那里,很明显。 相较于Send
,这方面的开销包括创建一个新的类来管理一个“流”,并引入一对夫妇和你之间的间接层Socket.Send
。 NetworkStream.Write
最终只是调用Socket.Send
; 但是这是一个偶顶置下来的层。
还有更多的工作来获得成立,通过使用流NetworkStream
类型。
如果当然,流也可以是双向的,这意味着你可以同时读取和写入。 您可以从一个插座与完全正常读取Receive
方法。
使用Send
或Receive
直接连结你插口。 如果使用的是Stream
-衍生物,你从分离Socket
,并免费使用方法/与工作类Stream
。
文章来源: What is the difference between Socket.Send and Stream.Write? (in relation to tcp ip connections)