2010-05-02 47 views
1

我一直在用C++编写一个网络服务器一段时间,并且已经到了阶段,开始寻找一种方法来正确和轻松地处理所有数据包。将对象传递给网络数据包处理程序?

我到目前为止,我可以找出它是什么样的包,但现在我需要弄清楚如何将需要的数据得到处理函数。

我记住以下几点:

  • 有地图的函数指针与操作码为键和函数指针的值
  • 具备所有这些功能有2个参数,包和ObjectAccessor
  • ObjectAccessor类包含各种函数来获取各种物品,例如用户等
  • 也许也传递用户的guid,以便我们可以从objectaccessor中获取它

我想知道其他人提出的各种实现,所以请评论这个想法并回复自己的实现。

谢谢,Xeross

+1

现有的实现呢,还是你为了学习的目的? – 2010-05-02 22:22:44

+0

现有的实现? – 2010-05-03 00:19:00

+0

您可以/将使用现有的序列化/反序列化解决方案,而不是自己实施它? – 2010-05-03 02:18:12

回答

0

我已经实现了一个处理程序类与一个函数指针数组一起使用,效果很好。

0

在我已创建的XML消息中的过去并在消息提供的命令字段。 由于我只有很少的命令,我只是用一堆if语句来查看命令是什么,然后根据命令调用一个函数,传入XML的有效载荷部分。

0

你可以看看现有的一些解决方案。 YAMI是一个简单的消息系统,你可能想看看。 (作为你现在拥有的东西的替代品,或者了解处理函数是如何注册/调用的)

我还没有看过YAMI4,所以我不能评论它,但YAMI 3.x挺好易于快速启动和运行,并且文档应该让您了解如何访问处理函数。

相关问题