2012-01-10 70 views
0

我在写一个执行服务器 - 客户端关系的Windows程序。为Windows编写非阻塞stdin读取函数?

我使用select()以获取客户端的请求,以及用户的命令(物理上位于服务器后面的那个命令)。

看起来select()适用于客户端的请求,但不适用于stdin的输入。

而且,我不从stdin因为后者没有被监控继承ReadFile(),换句话说,它是不是FD_SET(stdin, (fd_set)myread_fds)。有没有办法以非阻塞的方式从stdin获取输入?

回答

1

您为您的服务器设计方案是非常具有挑战性的。许多优秀的程序员已经尝试过并最终放弃了。即使你可以得到它的工作,它也不会是可扩展的。

一个更好的计划,恕我直言,是编写一个单独的应用程序,照顾'服务器用户'的命令。这个应用程序称为SUG(服务器用户gui)是服务器的另一个客户端。服务器以同样的方式照顾来自SUG和远程客户端的两个请求。这使得服务器设计更简单,并且GUI不会影响服务器的性能。