我是一名中级c ++程序员,并使用ACE完成了一些工作,现在我想彻底学习其中一个库,以进入我的职业生涯.这就是为什么我需要你帮助做出决定,我应该先学习什么.另外请考虑我的目的地是专家网络程序员和协议设计师.感谢您的时间和善意的答案提前.
我正在为在线回合制游戏编写tcp服务器.我已经使用php套接字编写了一个原型,但是想转向C++.我一直在看流行的网络库(ASIO,ACE,POCO,LibEvent),但目前还不清楚哪一个最适合我的需求:
1)连接是持久的(大约几分钟),服务器必须能够处理100多个同时连接.
2)连接必须能够维护状态信息(用户登录信息).[我的php原型目前要求每个客户端请求包含登录信息]
3)可选地且优选地多线程,但是单个过程.不希望每个连接没有1个线程,而是在所有打开的连接上使用固定数量的线程.
我倾向于POCO的TCPServer或Reactor框架,但不确定它们是否符合我的要求.我认为Reactor是单线程的,TCPServer强制执行1:1线程/连接.我对么?
在任何一种情况下,我都不确定如何完成将登录信息与特定连接相关联的最重要任务,其中连接随机进出.
我是新来的 BOOST
我们打算从移动ACE到BOOST.我们没有使用完整ACE但只是ACE库的一部分,有些在下面提到
这是或类似的functionality/api可用BOOST.最重要的是有ACE_Task_Base一些功能BOOST
我想知道这可能是使用BOOST和任何使用问题BOOST.我的产品是纯粹的C++,沉重的Network,并Threads在Windows与Unices
我们有一个Unix代码来创建.xml文件中的直径文件作为输入.当我们转移到Linux平台时,我们需要创建相同的实用程序,代码已成功编译但实用程序没有按预期创建输出文件内容,因为每个字节都会反转位,我认为它是因为Linux是小端.
要写入输出文件的消息块格式为:
ACE_Message_Block* mb = m_pReqMsgBlock;
while (mb) {
out.write(mb->rd_ptr(), mb->size());
mb = mb->cont();
}
Run Code Online (Sandbox Code Playgroud)
任何人都可以建议可以添加多少额外的代码,以便可以以预期的方式写入字节?