掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
select処理で標準入力を識別させるには? (ID:52141)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
Windowsでは無理です。 select自体がWinSockのAPIですから。 基本的に設計からやり直す必要があります。 方法論としては, ・スレッドを使う ・Overlapped I/Oを使う(NT only) があります。 スレッドを使うというのは,標準入力からの入力処理とソケットの入出力処理を分離して, ブロッキングしても他方に影響を及ぼさないようにする,という方法です。 同期などの問題が出てくるので面倒ですが,NT系/95系どちらでも使うことができます。 Overlapped I/Oを使うというのは,イベントオブジェクトなどを利用して, 処理が終了したことを知る方法です。この方法ではブロッキングは起きません。 #ちゃんと処理すれば,ですが。 NT系でのみ利用可能ですが,同期の問題はなくなります。 #ReadFile/ReadConsole APIでOverlapped I/Oは95系のサポート無し。
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2020 Takeshi Okamoto All Rights Reserved.