Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Socket.Send和Stream.Write之间有什么区别?(与tcp ip连接相关)_C#_Sockets_Stream_Send - Fatal编程技术网

C# Socket.Send和Stream.Write之间有什么区别?(与tcp ip连接相关)

C# Socket.Send和Stream.Write之间有什么区别?(与tcp ip连接相关),c#,sockets,stream,send,C#,Sockets,Stream,Send,在处理服务器/客户机连接时,我已经看到这两种连接都得到了有效的使用,并且都没有任何明显的优势,但我怀疑如果其中一种连接没有任何已知的优势,它们是否都会存在。有人知道这两者之间有什么明显的区别吗?非常感谢您的帮助。Socket.Send是直接通过WINSOCK层进行的原始数据发送流在发送数据时缓冲和处理数据。它通常用于需要流式功能的情况。显然,那里有一些额外的开销。与Send相比,此开销包括创建一个新类来管理“流”,并在您和Socket.Send之间引入两层间接寻址NetworkStream.Wr

在处理服务器/客户机连接时,我已经看到这两种连接都得到了有效的使用,并且都没有任何明显的优势,但我怀疑如果其中一种连接没有任何已知的优势,它们是否都会存在。有人知道这两者之间有什么明显的区别吗?非常感谢您的帮助。

Socket.Send
是直接通过WINSOCK层进行的原始数据发送<代码>流在发送数据时缓冲和处理数据。它通常用于需要流式功能的情况。显然,那里有一些额外的开销。与
Send
相比,此开销包括创建一个新类来管理“流”,并在您和
Socket.Send
之间引入两层间接寻址
NetworkStream.Write
最终只需调用
Socket.Send
;但这是一对夫妇的开销下来

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

当然,流也可以是双向的,这意味着您可以对其进行读写。您可以使用
Receive
方法从套接字读取数据


使用
Send
Receive
直接将您连接到套接字。如果您使用的是
-派生,那么您就与
套接字
分离,可以自由使用与

一起工作的方法/类,您要提供一点关于您提到的“额外开销”的见解是否要求过高?