2 つのスレッドで動作するクライアントがあります。1 つはデータの送信、2 番目はデータの受信です。私が持っているデータを送信する際にstd::getline(std::cin,string)
。このスレッドでは、2 番目のスレッドが終了するか、ユーザーが EXIT コマンドを入力すると終了する無限ループがあり、2 番目のスレッドが終了して無限ループが終了すると、プログラムはstd::getline
.
今質問する:
プログラムを終了するためにボタンを押す必要がないように、データをgetlineに送信して「偽の」ボタンを押すにはどうすればよいですか?
2番目の質問 クライアントごとに別のスレッドを実行し、サーバーのメインスレッドが新しい接続を受け入れるサーバーがありますが、それもうまく機能しています。クライアントは に格納されstd::list
ます。すべてのスレッドには、クライアントからデータを受け取る無限ループがあります。クライアントの呪いが多すぎると、サーバーから追い出されますが、ユーザーが無限ループから抜け出し、スレッドが終了するときに問題が発生しますが、クライアントをリストから消去したいので、プログラムのメインスレッドで確認する必要がありますスレッドのいずれかが正しい値を返した場合、およびリストから要素を消去した場合は毎回?