Здравствуйте, возникла такая проблема в main.cpp крутится цикл на чтение из консоли, в консоль пишем всё хорошо, из main и из класса который запускается после введения start_all.
Но дальше почему-то перестаёт писать в консоль, стоить убрать цикл на чтение и всё хорошо пишется.( TcpServer)
main:
QTextStream qtin(stdin, QIODevice::ReadOnly);
QString line = "";
while (line != QString("quit")){
qtin >> line;
if(line.contains("start_all", Qt::CaseInsensitive))
start_all();
if(line.contains("stop_all", Qt::CaseInsensitive))
stop_all();
}
start_all
void start_all(){
if(server1 != "")
server1.startServer(server1.toInt());
if(server2 != "")
server2.startServer(server2.toInt());
}
server1
void server1::startServer(int port)
{
QTextStream Qcout(stdout);
if(!this->listen(QHostAddress::Any, port))
Qcout << "Could not start server" << endl;
else
Qcout << "Server 1 start on port " << port << "..." << endl;
}
void server1::incomingConnection(qintptr socketDescriptor)
{
QTextStream Qcout(stdout);
Qcout << socketDescriptor << " Connecting..." << endl;
server1_protocol *thread = new server1_protocol(socketDescriptor, this);
connect(thread, SIGNAL(finished()), thread, SLOT(deleteLater()));
thread->start();
}
void server1::stopServer(){
this->close();
}
Фраза
Server 1 start on port выводится в консоль, а дальше перестаёт, подключаюсь к серверу и не выводит ничего. (если цикл стоит на чтение)
server1_protocol
void server1_protocol::run()
{
QTextStream Qcout(stdout);
Qcout << " Thread started" << endl;
socket = new QTcpSocket();
if(!socket->setSocketDescriptor(this->socketDescriptor))
{
emit error(socket->error());
return;
}
connect(socket, SIGNAL(readyRead()), this, SLOT(readyRead()), Qt::DirectConnection);
connect(socket, SIGNAL(disconnected()), this, SLOT(disconnected()));
Qcout << socketDescriptor << " Device Connected" << endl;
exec();
}
void server1_protocol::readyRead()
{
QTextStream Qcout(stdout);
QByteArray Data = socket->readAll();
Qcout << socketDescriptor << " Data in: " << Data << endl;
socket->write(Data);
}
void server1_protocol::disconnected()
{
QTextStream Qcout(stdout);
Qcout << socketDescriptor << " Disconnected" << endl;
socket->deleteLater();
exit(0);
}
Помогите пожалуйста, совсем не понимаю почему так происходит.