【发布时间】:2013-04-22 13:19:22
【问题描述】:
我目前正在重写一个非常旧的 mmorpg 的服务器端,并且我正在寻找一个与 C/C++ 一起使用的好的开源网络库。
由于客户端已经存在,我不能使用任何强制某种数据包结构或通信的库(例如,RakNet)。
服务器将主要使用 UDP,在三个不同的端口上。
在网上搜索后,我发现了 boost::asio 和 libuv。
boost::asio 似乎是一个成熟的选择,因为我已经在使用 boost,但我读到他们的 UDP 实现有点差,并且由于某些原因,它无法实现多核处理器的最大性能使用 epoll 时的锁。
libuv 看起来不错,是事件驱动的,有大项目支持,但是目前还没有这样的项目使用它,所以我对使用它有疑问。
大家怎么看?我可以在这样的项目中使用 libuv,还是必须使用 boost::asio?我也对其他建议持开放态度(它们需要是跨平台的,我已经放弃了 enet、libevent 和 libev)。
【问题讨论】:
-
liblacewing 可能也很适合这个(在 Windows 上支持 epoll、kqueue 或 IOCP)。披露:我是主要开发者。
-
很酷的项目,我会看看,但我很想使用 asio,因为我已经使用了 boost。
-
@RenatoUtsch 嗨,Renato,一年后,你选择了什么?你能给我们一些关于你的经验的回报吗?谢谢
标签: c++ boost network-programming boost-asio libuv