Seite 1 von 1

QTcpSocket und state() ...

Verfasst: 21. Dezember 2009 19:58
von Real-TTX
Hallo Gemeinde :)

Habe eine kleine Frage bezgl des folgenden Codes, der leider nicht funktioniert :

Code: Alles auswählen

QString Test::Connect(QString Host, qint16 Port)
{
    QString strRec;
    Sock->connectToHost(Host, Port);
    
    while (Sock->state() != QAbstractSocket::ConnectedState);

    strRec = Sock->readLine();
    strRec = strRec.trimmed();
    return strRec;
}
Bei der While-Schleife hängt er sich immer auf. Wenn ich aber anstelle der While folgendes Nutze, geht es :/

Code: Alles auswählen

 Sock->waitForReadyRead(100); 

Hat da jemand eine Idee :)

Bin für jede Kleinigkeit dankbar...

Gruß

Verfasst: 21. Dezember 2009 20:55
von upsala
Es hängt sich nicht auf. Es wartet auf deine Event-Schleife. Wo startest du die?

Verfasst: 22. Dezember 2009 10:27
von Real-TTX
Erstmal Danke für die Antwort :)

Event-Schleife? Was ist das ? :oops:

Verfasst: 22. Dezember 2009 14:31
von upsala
Hast du dich schon mal mit den Grundlagen von Qt vertraut gemacht? Hast du dir schon mal die Examples angeschaut?

Code: Alles auswählen

Programming with a blocking socket is radically different from programming with a non-blocking socket. A blocking socket doesn't require an event loop and typically leads to simpler code. However, in a GUI application, blocking sockets should only be used in non-GUI threads, to avoid freezing the user interface. See the network/fortuneclient and network/blockingfortuneclient examples for an overview of both approaches.