在处理服务器/客户端连接时,我已经看到这两种方法都被有效地使用,没有任何明显的优势,但我怀疑如果其中一种没有任何已知的优势,它们都会存在。有谁知道这两者之间有什么明显的区别吗?帮助将不胜感激,谢谢。
问问题
2226 次
1 回答
2
Socket.Send
是直接通过 WINSOCK 层的原始数据发送... Stream
在您发送数据时缓冲和处理数据。它通常用于需要类似流的功能的情况。显然,那里有一些额外的开销。相比之下Send
,这种开销包括创建一个新类来管理“流”并在您和Socket.Send
. NetworkStream.Write
最终只是打电话Socket.Send
;但这是几层开销。
NetworkStream
通过使用类型,还需要做更多的工作来设置流。
当然,流也可以是双向的,这意味着您可以读取和写入它。Receive
您可以使用这些方法完美地从套接字读取。
使用Send
或Receive
直接将您连接到套接字。如果您使用Stream
-derivative,您将与Socket
使用Stream
.
于 2012-07-24T18:31:19.760 回答