2

我一直构建自己的序列化器/反序列化器,以便能够将 BeginReceive/EndReceive 与套接字一起使用,以避免每个连接的套接字使用一个线程。这是一项相当耗时的任务。

我已经开始研究 protobuf-net 并希望将它与异步套接字一起使用,而不必自己编写序列化/反序列化。如果我不必为每个套接字使用一个线程来包装阻塞操作,我会更喜欢。

查看快速入门,他们正是这样做的(每个客户端一个线程)。难道没有别的办法了吗?

我的问题不是关于 protobuf-net,而是关于序列化和套接字。但是 protobuf-net 的例子是最受欢迎的。

4

1 回答 1

1

这只是一个基本的例子。protobuf-net 是序列化层,而不是消息传递层。如果您有特定的方式来处理消息:去吧。您需要做的就是,在您的流处理过程中,缓冲整条消息(可能进入 a MemoryStream),然后在数据可用时通过 protobuf-net 对其进行处理。

不同之处在于,您可能希望单独处理有效载荷长度,而不是直接使用这些*WithLengthPrefix方法,以便您的代码知道在处理之前要缓冲多少数据。

于 2010-07-09T13:24:00.977 回答