【问题标题】:Higher-level socket functions更高级别的套接字函数
【发布时间】:2012-11-24 04:13:12
【问题描述】:

我有一个典型的网络协议,由典型的消息流(32 位长度字段 + 可变长度正文)组成,我想从 TCP 套接字异步读取消息。

但是 C# 似乎提供了一个相当低级的 API:我仍然必须分配缓冲区、手动跟踪写入的偏移量和数据长度,并在读取长度和正文的单独调用之间保持状态,就像在过去糟糕的日子一样C.

在开始编写繁琐的异步有状态代码之前,我可以尝试一些更高级的函数吗? (没有第三方库)。

【问题讨论】:

  • 您可以将套接字设置为非阻塞,这样可以节省多线程。但即便如此,编码也相当烦人。我正在 protobuf.net 之上处理一些 RPC,因此在缓冲和打包方面存在类似的问题。
  • 其实是一个很有趣的问题。我已经多次手动编写过这样的代码,而且我从来没有停下来思考是否有针对这种情况的 lib 或 .Net api。我猜我有远见:)
  • @CodeInChaos 你必须让我知道你想要什么......
  • @Marc 我不明白你想说什么
  • @CodeInChaos - 好吧,我可以公开什么来减少烦恼?也许像 SAX 这样的事件/回调方法?

标签: c#


【解决方案1】:

没有内置的,没有。事实上,我也想不出任何第三方库。我没有尝试过,但它发生 C# 5 可能会在这里提供一些语言级别的亮点。另一种选择是使用同步读取的单独线程,但随后使用线程而不是 IO 完成端口。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-03-21
    • 1970-01-01
    • 1970-01-01
    • 2018-07-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-06
    相关资源
    最近更新 更多