服务器应用程序中命令的非阻塞用户输入

时间:2014-10-17 15:36:14

标签: c++ multithreading io nonblocking

如何让用户输入不会阻止应用程序循环的命令。就像它在游戏服务器中完成一样,因此管理员用户可以踢出玩家,或通过发出控制台命令来生成东西。

我已经阅读过我可以通过为它创建新线程来实现它。但是如果我要做,让我们调用它,输入将用std::cin阻塞的线程,然后主线程将结束,输入线程将因为std::cin阻塞而不会加入。

如果在主线程即将返回时有一种方法可以杀死这样的输入线程 - 这将是我最喜欢的解决方案。但我想没有这样的方式,或者如果它存在,那就不是安全的了。

此外,我已经阅读了基于文件描述符集和select函数的kbhit实现,但它在Windows上不起作用。

如果解决方案不需要我自己处理箭头,退格键,删除和移位键码,那就太棒了。

0 个答案:

没有答案