Telnet verbindung mit einem nicht QT Server

Alles rund um die Programmierung mit Qt
Antworten
Vadhagh
Beiträge: 19
Registriert: 15. Februar 2010 12:24

Telnet verbindung mit einem nicht QT Server

Beitrag von Vadhagh »

Hi,

ich habe die Aufgabe ein GUI zu erstellen das via Telnet auf einen Server zugreift der seinerseits ein Textzeilen basiertes UI hat. Damit die Benutzerfreundlichkeit aber erhöht wird soll ich nun einen Clienten mit einem GUI erstellen.
Ich wollte mit einem MainWindow arbeiten und hier mit einem Spliter auf der einen Seite die Darstellung des Servers sichtbar machen ( das Textzeilen UI) und auf der anderen die Eingabe mit dem GUI ermöglichen.
Mein Problem ist das ich den Datenstrom nicht sichbar machen kann (ausgeben kann). Die Verbindung wird hergestellt, das sehe ich an dem Verhalten wie lage es dauert bis ich vom Server gekickt werde.

Code: Alles auswählen

 connect(ui->actionVerbinden,SIGNAL(triggered()),this,SLOT(connectToServer()));
    //connect(&tcpSocket,SIGNAL(connected()),this,SLOT(sendRequest()));
    //connect(&tcpSocket, SIGNAL(destroyed()),this,SLOT(connectionClosedServer()));
    connect(&tcpSocket, SIGNAL(readyRead()),this,SLOT(updateTableWidget()));
    connect(&tcpSocket, SIGNAL(error(QAbstractSocket::SocketError)),this,SLOT(error()));
}
void MainWindow::connectToServer(){
    tcpSocket.connectToHost("172.29.161.170",23);
    connect(&tcpSocket,SIGNAL(connected()),this,SLOT(connectionDone()));

}
void MainWindow::updateTableWidget(){
    QDataStream in(&tcpSocket) ;
    in.setVersion(QDataStream::Qt_4_6);

    if (nextBlockSize == 0) {
       if (tcpSocket.bytesAvailable() <  sizeof(quint16))
          return;
       in >> nextBlockSize;

    }

    if (tcpSocket.bytesAvailable() < nextBlockSize)
       return;
    QString incoming;
    in>> incoming;
    ui->label->setText(incoming);
Gruß,
Maik
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag von Christian81 »

QDataStream ist definitiv nicht das was Du suchst - oder kann dein Gegenüber QDataStream verarbeiten?
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
101
Beiträge: 72
Registriert: 16. Januar 2008 16:28

Beitrag von 101 »

franzf
Beiträge: 3114
Registriert: 31. Mai 2006 11:15

Beitrag von franzf »

101 hat geschrieben:http://doc.trolltech.com/solutions/3/qt ... elnet.html

Dürfte dich interessieren! 8)
Dürfte ihn nicht interessieren :P
Das ist nämlich Qt3, und wenn er nicht hinterm Mond wohnt oder für ein total armes/konservatives Unternehmen arbeitet, hat er Qt4.

http://qt.nokia.com/products/appdev/add ... /qttelnet/
Das wäre das was ihn interessiert ;)
101
Beiträge: 72
Registriert: 16. Januar 2008 16:28

Beitrag von 101 »

Sorry, auf die Version hatte ich bei dem Link gar nicht geschaut. Hatte nur nach QtTelnet gegoogelt und das war der erste Link.
Vadhagh
Beiträge: 19
Registriert: 15. Februar 2010 12:24

Beitrag von Vadhagh »

Danke für dieAntworten.
Sry das ich mich erst jetzt melde aber ich werde mich da mal reinfuchsen. Danke für den Tip.

Gruß,
Maik
Vadhagh
Beiträge: 19
Registriert: 15. Februar 2010 12:24

Beitrag von Vadhagh »

Also nachdem ich das Plugin eingearbeitet habe funtioniert die Verbundungsaufnahme mit dem Server. Ich kann ihm auch befehle Senden, nur habe ich das Problem ,dass ich mit der Terminal Emulation nicht klar komme. Es handelt sich um eine VT-220, VT-320 kompatible Emulation auf dem Server.
Ich müsste ihm Steuerzeichen senden können um einwandfrei mit ihm Komunieziern zu können. Nur komme ich genau dort nicht weiter. Ich weis nicht wie ich ihm z.B. [^M] als Steuerzeichen für [ENTER] senden kann.
Hat einer schonmal mit dem Telnet Packet gearbeitet und kann mir da nen Tip geben? Den an den String anhängen und mitsenden geht nicht, da wird das Steuerzeichen nicht erkannt.

Gruß,
Maik
Antworten