Проблема с getline и потоками - PullRequest
3 голосов
/ 20 июня 2011

У меня есть клиент, который работает на 2 темы. Один отправляет данные, а второй получает данные. При отправке данных у меня есть std::getline(std::cin,string). Теперь в этом потоке у меня есть бесконечный цикл, который заканчивается, если заканчиваются вторые потоки или если пользователь вводит команду EXIT, все прекрасно работает, ожидая, что, когда второй поток закончится и бесконечный цикл закончится, программа все еще ожидает нажатия кнопки из-за std::getline.
Теперь на вопрос:

Как я могу отправить данные на getline для «поддельной» нажатия кнопки, чтобы мне не нужно было нажимать кнопку для завершения программы?

Второй вопрос У меня есть сервер, на котором для каждого клиента работает другой поток, а основной поток сервера принимает новые подключения, он также отлично работает. Клиент хранится в std::list. Каждый поток имеет бесконечный цикл, который получает данные от клиентов. Если клиент проклинает его слишком сильно, его бьют с сервера, но вот проблема, когда пользователь делает это, я просто отключаюсь от бесконечного цикла, и поток заканчивается, но я также хотел бы удалить клиента из списка, поэтому в основном потоке программы я должен проверить каждый раз, если какой-либо поток возвращал правильное значение, и если он стирал элемент из списка?

...