Qt und Telnet

Alles rund um die Programmierung mit Qt
Antworten
ReALITY5
Beiträge: 8
Registriert: 17. März 2007 21:23
Kontaktdaten:

Qt und Telnet

Beitrag von ReALITY5 »

Ich versuche gerade schon die ganze Zeit einen telnet clienten in Qt zu schreiben. Doch der Server antwortet mir nicht bzw ich bin mir nicht mal sicher ob auch das ankommt was ich senden will.

Code: Alles auswählen

void MainWindow::setConnected()
{
    statusBar()->showMessage(tr("successfully connected to %1 on Port %2").arg(Ip).arg(Port),2000);
    //Dem Server bytes schicken
    QByteArray block;
    QDataStream out(&block,QIODevice::WriteOnly);
    out.setVersion(QDataStream::Qt_4_1);
    const char query[50]="sl\n";
    out<<query;
    out.device()->seek(0);
    socket->write(block);
    socket->waitForReadyRead(-1);
    //vom Server bytes bekommen
    QDataStream in(socket);
    QString nextBlock;
    in.setVersion(QDataStream::Qt_4_1);
    for(int i=0;i<5;i++)
    {
    	if(socket->bytesAvailable() > sizeof(char))
    	{
            in>>nextBlock;
    	}
    }
    cout<<nextBlock.toStdString();
}
jemand ideen was ich da ändern muss und ob ich wenigstens etwas richtig gemacht hab?
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag von Christian81 »

Das kann so nicht gehen da nie die Qt-Eventloop abgearbeitet wird. Benutze normal signals & slots.
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
ReALITY5
Beiträge: 8
Registriert: 17. März 2007 21:23
Kontaktdaten:

Beitrag von ReALITY5 »

In der Doku sehe ich keine Ansprechenden Signals für QTcpSocket,
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag von Christian81 »

MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
ReALITY5
Beiträge: 8
Registriert: 17. März 2007 21:23
Kontaktdaten:

Beitrag von ReALITY5 »

Gibt es irgendeine möglichkeit, das Programm solange zu blockieren bis ein Event auftritt sowas wie

Code: Alles auswählen

    if(was_emit(clicked()))
   {
       cout<<"button wurde geklickt"<<endl
   }
und wie muss ich die Daten speichern, die ich vom Server bekomme?
Ich würde sie in nem char* speichern, aber das geht irgendwie nicht so gut
und wenn ich sie in nem QBytearray speicher, kommen nur whitespaces als ausgabe
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag von Christian81 »

ReALITY5 hat geschrieben:Gibt es irgendeine möglichkeit, das Programm solange zu blockieren bis ein Event auftritt
Das ist Blödsinn - beschäftige Dich bitte mit dem Sinn von Signals & Slots.
QByteArray ist ok - da kommen wohl deine Daten nicht korrekt an oder sowas in der Art
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
ReALITY5
Beiträge: 8
Registriert: 17. März 2007 21:23
Kontaktdaten:

Beitrag von ReALITY5 »

naja, habs mit Signals und slots gelöst. Wollte halt sowas blockierendes haben, weil cih eine ComboBox mit der Antwort des Servers initalisieren wollt.
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag von Christian81 »

Blockierend in einer GUI ist irgendwie nicht so sinnvoll, oder?
Es ist möglich, aber ...
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
ReALITY5
Beiträge: 8
Registriert: 17. März 2007 21:23
Kontaktdaten:

Beitrag von ReALITY5 »

mhh, stimmt schon, naja ich habs mit ner art status variable gemacht, wenn die einen wert ungleich 0 hat, werden Gui elemente initalisiert. Nicht die schönste art, aber es funktioniert
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag von Christian81 »

Ich verstehe es noch nicht so ganz - warum füllst du nicht einfach die ComboBox wenn die Daten angekommen sind und fertig?
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
ReALITY5
Beiträge: 8
Registriert: 17. März 2007 21:23
Kontaktdaten:

Beitrag von ReALITY5 »

weil es nicht immer die selben anfragen sind. ich will auch noch z.b. ne 2. Combobox initalisieren
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag von Christian81 »

Das stört doch aber nicht - zumindest wüsste ich nicht wie :)
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
Antworten