2

在处理服务器/客户端连接时,我已经看到这两种方法都被有效地使用,没有任何明显的优势,但我怀疑如果其中一种没有任何已知的优势,它们都会存在。有谁知道这两者之间有什么明显的区别吗?帮助将不胜感激,谢谢。

4

1 回答 1

2

Socket.Send是直接通过 WINSOCK 层的原始数据发送... Stream在您发送数据时缓冲和处理数据。它通常用于需要类似流的功能的情况。显然,那里有一些额外的开销。相比之下Send,这种开销包括创建一个新类来管理“流”并在您和Socket.Send. NetworkStream.Write最终只是打电话Socket.Send;但这是几层开销。

NetworkStream通过使用类型,还需要做更多的工作来设置流。

当然,流也可以是双向的,这意味着您可以读取和写入它。Receive您可以使用这些方法完美地从套接字读取。

使用SendReceive直接将您连接到套接字。如果您使用Stream-derivative,您将与Socket使用Stream.

于 2012-07-24T18:31:19.760 回答