Seite 1 von 1

Port abhören

Verfasst: 5. Juni 2013 12:09
von dschr
Hallo Zusammen,

ich bin neu hier im Forum und ein absoluter Qt Anfänger.
Ich habe folgendes Problem. Im Rahmen meiner Studienarbeit sendet mir ein Roboter seine X,Y,Z-Positionen im XML-Format an einen Port meines extern angeschlossenen PC´s.
Mit der vom Hersteller mitgelieferten TestServer.exe kann ich diesen Port auch abhören und bekomme diese Daten auch angezeigt.
Nun möchte ich aber mithilfe von Qt in meinem C++ Programm diesen Port abhören und die übertragenen Werte in Arrays ablegen um mit den jeweiligen Änderungen von X,Y,Z die zurückgelegte Strecke berechnen. Die Berechnung der Strecke hab ich auch schon mit fiktiven Werten hinbekommen, ich habe nur keine Ahnung wie ich das Abhören des Ports programmieren soll?

Über Tipps oder Ideen wie ich das Problem umsetzen könnte wäre ich sehr dankbar.

Re: Port abhören

Verfasst: 5. Juni 2013 15:21
von odt
Port tönt nach TCP/IP tönt nach QTcpServer

Re: Port abhören

Verfasst: 6. Juni 2013 07:06
von dschr
Hallo odt,
es handelt sich bei den Paketen um ein UDP-Format.
Hast du vielleicht ein paar Codefetzen oder ein Beispiel wie man den QTcpServer verwendet?

Re: Port abhören

Verfasst: 6. Juni 2013 07:59
von veeman
Schau mal in die Docs: QUdpSocket

Code: Alles auswählen

void Server::initSocket()
{
    udpSocket = new QUdpSocket(this);
    udpSocket->bind(QHostAddress::LocalHost, 7755);

    connect(udpSocket, SIGNAL(readyRead()),
            this, SLOT(readPendingDatagrams()));
}

void Server::readPendingDatagrams()
{
    while (udpSocket->hasPendingDatagrams()) {
        QByteArray datagram;
        datagram.resize(udpSocket->pendingDatagramSize());
        QHostAddress sender;
        quint16 senderPort;

        udpSocket->readDatagram(datagram.data(), datagram.size(),
                                &sender, &senderPort);

        processTheDatagram(datagram);
    }
}

Re: Port abhören

Verfasst: 7. Juni 2013 07:24
von dschr
Viel Dank für den Hinweis,
ich kann die XML-Files so jetzt vom Port abhören und mir ausgeben lassen

Re: Port abhören

Verfasst: 7. Juni 2013 09:00
von dschr
Hallo nochmal,

gibt es in QT auch eine Funktion mit der man die Double-Werte (X,Y,Z,A,B,C) aus dieser XML erfassen und in ein Array abspeichern kann?

Danke schonmal im voraus.