c++ - 为 Windows 编写非阻塞标准输入读取函数?

标签 c++ windows

我正在为执行服务器-客户端关系的 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/

相关文章:

windows - 在 Windows 和 OSX 之间自动同步剪贴板

c - 在 MS Windows 中运行时缺少 Gtk+ 图标

python - 在 Python 中设置 Windows 命令行终端标题

c++ - 解析CSV文件-C++

c++ - 为对象实现二维数组

mysql - 适用于 Windows 的 Sequel Pro 替代品

windows - 导出带或不带凭据的 MobaXterm session

c++ - 模板化静态模板成员

c++ - 如何检测字符串文字

c++ - 当主窗口被隐藏时,pthread wait() 花费的时间比预期的要长