首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为Windows编写一个非阻塞的stdin读取函数?

为Windows编写一个非阻塞的stdin读取函数?
EN

Stack Overflow用户
提问于 2012-01-11 05:24:41
回答 2查看 1.8K关注 0票数 0

我正在为Windows编写一个执行服务器-客户端关系的程序。

我使用select()是为了从标准输入中获取客户机的请求,以及用户的命令(物理上位于服务器后面的命令)。

似乎select()适用于客户端的请求,但不适用于来自标准输入的输入。

此外,我无法从stdin成功ReadFile(),因为后者不受监视,换句话说,它不是FD_SET(stdin, (fd_set)myread_fds)。有没有办法以非阻塞的方式从标准输入中获取输入?

EN

回答 2

Stack Overflow用户

发布于 2012-01-11 07:08:25

您的服务器设计计划非常具有挑战性。许多优秀的程序员都曾尝试过,但最终放弃了。即使你能让它工作,它也不会是可伸缩的。

一个更好的计划,IMHO,是编写一个单独的应用程序,它负责“服务器用户”命令。该应用程序称为SUG (服务器用户gui ),是服务器的另一个客户端。服务器以相同的方式处理来自SUG和远程客户端的两个请求。这使得服务器设计变得更简单,并且GUI不会影响服务器的性能。

票数 2
EN

Stack Overflow用户

发布于 2012-01-11 05:28:56

我认为您正在寻找的不是select(),而是WaitForMultipleObjects(),它可以等待套接字和控制台I/O。

http://msdn.microsoft.com/en-us/library/windows/desktop/ms687025(v=vs.85).aspx

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8810709

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档