Название: Вывод в консоль из потока (TcpServer) (HELP) Отправлено: f00rZik от Май 23, 2016, 12:04 Здравствуйте, возникла такая проблема в main.cpp крутится цикл на чтение из консоли, в консоль пишем всё хорошо, из main и из класса который запускается после введения start_all.
Но дальше почему-то перестаёт писать в консоль, стоить убрать цикл на чтение и всё хорошо пишется.( TcpServer) main: Код: QTextStream qtin(stdin, QIODevice::ReadOnly); Код: void start_all(){ Код: void server1::startServer(int port) Фраза Server 1 start on port выводится в консоль, а дальше перестаёт, подключаюсь к серверу и не выводит ничего. (если цикл стоит на чтение) server1_protocol Код: void server1_protocol::run() Помогите пожалуйста, совсем не понимаю почему так происходит. Название: Re: Вывод в консоль из потока (TcpServer) (HELP) Отправлено: Kurles от Май 23, 2016, 12:41 Cудя по всему у тебя сервер(а) стартует в основном потоке, и так как qtin(...) блокирует поток ожиданием ввода с консоли, тупо дело до void server1::incomingConnection(qintptr socketDescriptor) не доходит. Попробуй перенести сервер(а) в отдельный поток, в принципе в том же дополнительном потоке можно и клиентов обрабатывать, не городя поток на соединение. Ну и проверяй через QThread::currentThread() что всё это действительно работает в разных потоках.
Название: Re: Вывод в консоль из потока (TcpServer) (HELP) Отправлено: f00rZik от Май 23, 2016, 13:57 К сожалению если пихаю сервер в новый поток, то происходит SIGSEGV - Segmentation fault
И всё падает. Название: Re: Вывод в консоль из потока (TcpServer) (HELP) Отправлено: f00rZik от Май 23, 2016, 14:02 Хотя, нет сделал ошибку в коде уже нашёл, но в новом потоке всё равно ничего не выводит :)
Всё то-же самое. Название: Re: Вывод в консоль из потока (TcpServer) (HELP) Отправлено: Kurles от Май 24, 2016, 21:34 Хотя, нет сделал ошибку в коде уже нашёл, но в новом потоке всё равно ничего не выводит :) Давай полностью проекты клиента и сервера в студию, очевидно что ты что то делаешь не так, вывод в консоль блокироваться не должен.Всё то-же самое. |