代码之家  ›  专栏  ›  技术社区  ›  Alexander Farber

从C++中使用Read()、WrrEVER()和Pull()

  •  3
  • Alexander Farber  · 技术社区  · 16 年前

    有一个 multiplayer card game 我在C语言中首先将其编程为非分叉套接字服务器(使用poll()调用)。

    然后,对我来说,添加新特性太困难了,我已经切换到Perl(使用IO::Poll模块)。

    由于Perl不支持Read()/WrrEVER(),需要更多的内存/ CPU,而且也不是很商业化(我想稍后再出售我的游戏),我希望在将来我的服务器恢复到C++——一旦我的特性稳定了。(c++,因为我的服务器中有很少的对象)。

    谁能给我提供一个例子,如何在C++下使用Read()、WrreEnter()和Pull()? 我知道如何使用Perl和C下的那些,但是我还没有找到C++的任何例子。

    我的环境:我正在使用OpenBSD及其gcc/g++,我希望我的服务器也能在Linux下运行。我不喜欢使用任何不寻常的库(比如libevent?)除非它们也在Windows下工作-因为将来我可能也要把服务器移植到Windows上(为此,我想我必须从poll()切换回select()并添加几个winsock函数?).

    请让我补充说,我喜欢Perl和C,我非常尊重C++,所以这个问题不是关于哪种语言或操作系统更好。我的问题是:如何用C++使用Pull()

    谢谢您! 亚历克斯

    2 回复  |  直到 14 年前
        1
  •  3
  •   mark4o    16 年前

    功能 readv() , writev() poll() 在C++中以同样的方式工作,就像C一样。

        2
  •  3
  •   Kornel Kisielewicz    16 年前

    C++处理它们和C完全一样——这里有一个教程来帮助你。 started .

    但是,既然你用C++编写它,我强烈建议你看看强大的替代品,比如 Boost.Asio 框架。相信我,在使用ASIO实现服务器时,您将节省大量的时间和精力。

    推荐文章