我正在为执行服务器-客户端关系的 Windows 编写程序。
我正在使用 select()
来获取客户端的请求,以及来自标准输入的用户命令(物理上位于服务器后面的命令)。
select()
似乎适用于客户端的请求,但不适用于标准输入的输入。
此外,我没有从 stdin
成功地 ReadFile()
因为后者没有被监控,换句话说它不是 FD_SET(stdin , (fd_set)myread_fds)
。有没有办法以非阻塞方式从标准输入获取输入?
最佳答案
您的服务器设计计划非常具有挑战性。许多优秀的程序员都尝试过它并最终放弃了。即使您可以让它工作,它也不是可扩展的。
恕我直言,一个更好的计划是编写一个单独的应用程序来处理“服务器用户”命令。这个应用程序,称之为 SUG(服务器用户 gui)是服务器的另一个客户端。服务器以相同的方式处理来自 SUG 和远程客户端的请求。这使得服务器设计更简单,并且 GUI 不会干扰服务器的性能。
关于c++ - 为 Windows 编写非阻塞标准输入读取函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8810709/