我在C中首先将multiplayer card game编程为非分叉套接字服务器(使用poll()调用)。
然后我很难添加新功能,而且我已经切换到Perl(使用IO :: Poll模块)。
由于Perl不支持readv()/ writev(),需要更多的内存/ CPU,也不是很商业化(我想稍后出售我的游戏),我想将我的服务器移回未来的C ++ - 一旦我的功能稳定下来。 (这次是C ++,因为我的服务器中的对象很少)。
有谁可以请给我一个例子,如何在C ++下使用readv(),writev()和poll()或select()?我知道如何在Perl和C下使用它们,但我还没有找到任何C ++的例子。
我的环境:我正在使用OpenBSD及其gcc / g ++,我也希望我的服务器也可以在Linux下运行。我不想使用任何不寻常的库(比如libevent?),除非它们也在Windows下工作 - 因为将来我也想将我的服务器移植到Windows(为此我想我将不得不从调查中切换回来) ()选择()并添加几个Winsock函数?)。
请允许我补充一点,我喜欢Perl和C,我非常尊重C ++,所以这个问题不是关于哪种语言或操作系统更好。我的问题是:如何使用poll()和C ++
谢谢! 亚历
答案 0 :(得分:3)
函数readv()
,writev()
和poll()
在C ++中的工作方式与在C中的工作方式相同。
答案 1 :(得分:3)
C ++处理它们与C完全相同 - 这是一个让你started的教程。
但是,由于您是用C ++编写的,我强烈建议您查看强大的替代方案,例如Boost.Asio框架。相信我,使用Asio实现服务器将节省大量时间和精力。