【发布时间】:2012-11-24 04:13:12
【问题描述】:
我有一个典型的网络协议,由典型的消息流(32 位长度字段 + 可变长度正文)组成,我想从 TCP 套接字异步读取消息。
但是 C# 似乎提供了一个相当低级的 API:我仍然必须分配缓冲区、手动跟踪写入的偏移量和数据长度,并在读取长度和正文的单独调用之间保持状态,就像在过去糟糕的日子一样C.
在开始编写繁琐的异步有状态代码之前,我可以尝试一些更高级的函数吗? (没有第三方库)。
【问题讨论】:
-
您可以将套接字设置为非阻塞,这样可以节省多线程。但即便如此,编码也相当烦人。我正在 protobuf.net 之上处理一些 RPC,因此在缓冲和打包方面存在类似的问题。
-
其实是一个很有趣的问题。我已经多次手动编写过这样的代码,而且我从来没有停下来思考是否有针对这种情况的 lib 或 .Net api。我猜我有远见:)
-
@CodeInChaos 你必须让我知道你想要什么......
-
@Marc 我不明白你想说什么
-
@CodeInChaos - 好吧,我可以公开什么来减少烦恼?也许像 SAX 这样的事件/回调方法?
标签: c#