在处理服务器/客户端连接时,我已经看到这两种方法都有效地使用而没有任何明显的优势,但我怀疑如果没有任何已知的优点,它们都会存在。有谁知道两者之间有明显的差异吗?非常感谢帮助,谢谢。
答案 0 :(得分:2)
Socket.Send
是直接通过WINSOCK层的原始数据发送... Stream
缓冲并在发送数据时处理数据。它通常用于需要类似流的功能的情况。显然,那里有一些额外的开销。与Send
相比,这种开销包括创建一个新类来管理“流”并在您和Socket.Send
之间引入几层间接。 NetworkStream.Write
最终只会调用Socket.Send
;但这是几层架空下降。
通过使用NetworkStream
类型,还可以进行更多工作来设置流。
如果当然,流也可以是双向的,这意味着你可以读取和写入它。您可以使用Receive
方法完全正确地读取套接字。
使用Send
或Receive
会将您直接耦合到套接字。如果您使用Stream
- 衍生物,则会与Socket
分离,并可以免费使用与Stream
一起使用的方法/类。