【发布时间】:2012-07-21 02:10:48
【问题描述】:
我正在设计一个 C++ 客户端应用程序,它侦听多个端口以获取短消息流。在阅读了 ACE、POCO、boost::asio 和所有类似 Proactor 的设计模式之后,我即将开始使用 boost::asio。
有一件事我注意到它是使用异步套接字 IO 的永恒主题,但还没有阅读 async io 解决的好的问题描述。所有这些设计模式都是基于 HTTP Web 服务器设计的假设吗?
由于 Web 服务器是复杂延迟敏感的并发套接字编程最常见的应用程序,我开始怀疑这些模式/习语中的大多数是否适合这一应用程序。
我的应用程序将侦听一些套接字以获取简短而频繁的消息。一个单独的线程将需要组合所有消息进行处理。我正在研究设计模式的一件事是将连接管理与数据处理分开。我希望连接在断开连接后尝试重新连接,并让处理线程继续进行,就好像什么都没发生一样。这里推荐什么设计模式?
我看不出异步 io 将如何提高我的性能。
【问题讨论】:
标签: c++ design-patterns boost-asio asyncsocket ace