Bri*_*ker 18 c# sockets networkstream
我有一个ac#应用程序,我使用自定义FTP库.现在我使用Socket.Send发送数据,但我想知道用套接字启动NetworkStream是否更好,而是使用NetworkStream.Write.
使用一个优于另一个是否有任何优势?
Ric*_*key 27
a的优点NetworkStream
主要来源于它是一个Stream
.a的缺点Socket
是从抽象I/O源读取和写入的公共代码,如Stream
无法处理a Socket
.
a的主要用例NetworkStream
是你在其他地方有一些代码可以从a读取或写入Stream
,并且你希望你可以使用它Socket
.你会知道是否处于这种情况,然后NetworkStream
将是一个很大的帮助!
比如说你有一个通信库,你支持从文件,命名管道和TCP/IP序列化消息.I/O类的理想选择是Stream
.然后你的序列化方法可以接受a FileStream
,a PipeStream
或a NetworkStream
.它甚至会接受一个MemoryStream
.这是抽象的好处,因为在我们创建了流之后,一个方法可以与它进行交互而不知道它是什么类型的流.
从这个意义上说,a NetworkStream
使用适配器设计模式.它使Socket
API 适应API,Stream
以便期望a的客户Stream
可以使用它.
最后,问题是,如果NetworkStream
是a的Stream
适配器Socket
,我们应该使用哪一个?好吧,如果你需要一个Stream
,然后NetworkStream
是你唯一的选择.如果您不需要Stream
,那么您可以使用最适合的API.如果您已经Socket
成功使用,则没有迫切要求切换到NetworkStream
.
归档时间: |
|
查看次数: |
13739 次 |
最近记录: |