【问题标题】:Sending pure byte[] over wcf without any overhead通过 wcf 发送纯字节 [] 而没有任何开销
【发布时间】:2015-10-16 17:09:20
【问题描述】:

我将通过 wcf 发送和接收数据。我正在处理的应用程序是服务器,我收到 byte[] 并且我还必须将 byte[] 发送给客户端。 我不知道他们(客户端)正在使用哪种应用程序或编程语言,我只知道他们除了接收 byte[] 而没有任何开销或元数据

这对 wcf 可行吗?我可以以某种方式将 wcf 配置为仅发送 byte[] 而不将内联元数据添加到 byte[]?

我知道还有另一个选项可以直接监听套接字并直接从套接字发送/接收字节[],但我认为 wcf 可能是一个更好的选择。

非常感谢任何帮助!

【问题讨论】:

  • 我对 wcf 了解不多,所以这就是为什么这是一个评论,但如果你想尽可能少地开销,你可以在这里阅读有关 UDP over wcf 的信息:msdn.microsoft.com/en-us/library/ms751494(v=vs.110).aspx 注意UDP 没有奇偶校验,因此您的数据可能会在传输过程中损坏,但对于音频/视频流来说会更酷
  • 这其实是个问题,客户端是怎么发送数据的?它会简单地打开套接字连接、启动侦听器并写入等待响应的字节还是将字节作为 http 消息发送?

标签: c# wcf bytearray


【解决方案1】:

当然,如果您可以使用 WCF 实现它,但您必须为此开发很多东西。但它可能是值得的(恕我直言),前提是您无论如何要将传入的 byte[] 解码为您身边的对象,处理反序列化数据,然后序列化响应并将其发送回。 为此,您必须实现自己的 MessageEncoderMessageEncoderFactory 并将其插入 WCF 管道以进行某些绑定。 See here一例一例。

Here is one more great sample。其实值得关注whole set of the articles about WCF extesibility

如果您只需要获取字节、处理二进制数据并发送二进制结果,我将实现侦听 TCP 端口的简单服务。它的开发速度会更快,工作速度也会更快,完全由您控制。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多