2012-01-10 7 views
0

私は、サーバーとクライアントの関係を実行するWindows用のプログラムを作成しています。Windows用の非ブロックスタンダード読み取り機能の作成?

私はクライアントの要求を取得するためにselect()を使用しています。また、ユーザーのコマンド(物理的にサーバーの背後にあるもの)を標準入力から取得しています。

select()は、クライアントの要求に対しては機能しますが、標準入力からの入力に対しては機能しないようです。

ReadFile()stdinからは、後者は監視されないため、つまりFD_SET(stdin, (fd_set)myread_fds)ではないため、私は成功しません。 stdinからの入力をノンブロッキングで得る方法はありますか?

答えて

1

サーバー設計のためのあなたの計画は非常に困難です。多くの上級プログラマーがそれを試み、最終的にはあきらめました。あなたがそれを働かせても、それはスケーラブルではありません。

もっと良い計画、IMHOは、 'サーバーユーザー'コマンドを調べる別のアプリケーションを作成することです。このアプリケーションは、それをSUG(サーバーユーザーGUI)と呼びます。サーバーの別のクライアントです。サーバは、SUGとリモートクライアントの両方の要求を同じ方法で調べます。これにより、サーバーの設計が簡単になり、GUIがサーバーのパフォーマンスを妨げることはありません。

関連する問題