使用网络库的状态信息的TCP服务器

Jus*_*tin 1 c++ poco ace boost-asio

我正在为在线回合制游戏编写tcp服务器.我已经使用php套接字编写了一个原型,但是想转向C++.我一直在看流行的网络库(ASIO,ACE,POCO,LibEvent),但目前还不清楚哪一个最适合我的需求:

1)连接是持久的(大约几分钟),服务器必须能够处理100多个同时连接.

2)连接必须能够维护状态信息(用户登录信息).[我的php原型目前要求每个客户端请求包含登录信息]

3)可选地且优选地多线程,但是单个过程.不希望每个连接没有1个线程,而是在所有打开的连接上使用固定数量的线程.


我倾向于POCO的TCPServer或Reactor框架,但不确定它们是否符合我的要求.我认为Reactor是单线程的,TCPServer强制执行1:1线程/连接.我对么?


在任何一种情况下,我都不确定如何完成将登录信息与特定连接相关联的最重要任务,其中连接随机进出.

Sam*_*ler 5

Boost.Asio应该符合您的要求.反应堆队列可以由多个线程服务.使用异步方法可以设计为所有连接提供服务的固定数量的线程.

教程例子可能是开始,如果你不熟悉图书馆的最佳场所.