【问题标题】:c# copy stream to networkstream [duplicate]c#将流复制到网络流[重复]
【发布时间】:2015-10-27 09:29:57
【问题描述】:

如果我有一个流并且我想将内容复制到网络流中,我会这样做。

  NetworkStream ns=new NetworkStream(Sck);//sck is a socket of course.
 stream.CopyTo(ns);

然后,在另一边我试图获取内容:

MemoryStream stream = new MemoryStream();
            ns.CopyTo(stream);

但实际上并没有发生任何事情......程序在 ns.copy 行之后停止......实际上没有发生任何事情...... 知道这是为什么吗? 我已经有了读取数据的算法,但我只想通过网络流发送流..

【问题讨论】:

标签: c# sockets networking stream


【解决方案1】:

接收者必须知道何时收到所有数据。在这里,您可以通过关闭用于在服务器上发送的套接字来执行此操作。最简单的方法是拨打Shutdown,然后拨打CloseDispose。这样客户端将完成流的复制。

【讨论】:

  • 好的,谢谢。如果我想不断地发送数据?
  • 那么你不能在接收器上使用 CopyTo 因为它总是耗尽流。您必须设计一个允许接收者区分消息的应用程序协议。建议:不要使用套接字。使用处理所有这些的更高级别的协议。 WCF 呢? HTTP? WebSockets 也是。
  • 好吧,我猜你是对的。 :) 看起来我正在开发一个屏幕共享应用程序,它必须非常快速地发送数据(数据大小可以在 3kb 到 200kb 之间!)所以我确实需要一个快速、高效和简单的协议。 networkstream 不会做这项工作吗?你为什么推荐 wfc 或 http?在此先感谢我真的很感谢你的帮助:) @usr
猜你喜欢
  • 1970-01-01
  • 2017-04-06
  • 2012-09-26
  • 1970-01-01
  • 1970-01-01
  • 2021-01-28
  • 2014-12-30
  • 2011-06-27
  • 1970-01-01
相关资源
最近更新 更多