J'essaye de connecter un serveur "hello world" tordu très basique avec un client Qt tcp basique.Client QT C++ tcp avec serveur python tordu
Le client utilise ces signaux:
connect(&socket, SIGNAL(connected()), this, SLOT(startTransfer()));
connect(&socket, SIGNAL(readyRead()), this, SLOT(readServer()));
puis readServer() ressemble à ceci:
ui->resultLabel->setText("Reading..");
QDataStream in(&socket);
//in.setVersion(QT_4_0);
if (blockSize == 0) {
if (socket.bytesAvailable() < (int)sizeof(quint16))
return;
in >> blockSize;
}
if (socket.bytesAvailable() < blockSize)
return;
QString theResult;
in >> theResult;
qDebug() << in;
qDebug() << theResult;
ui->resultLabel->setText(theResult);
Le serveur J'utilise à des fins de test est simplement un exemple attrapé hors de son torsadés docs
from twisted.internet.protocol import Protocol, Factory
from twisted.internet import reactor
### Protocol Implementation
# This is just about the simplest possible protocol
class Echo(Protocol):
def dataReceived(self, data):
"""
As soon as any data is received, write it back.
"""
self.transport.write(data)
def main():
f = Factory()
f.protocol = Echo
reactor.listenTCP(8000, f)
reactor.run()
if __name__ == '__main__':
main()
readServer() s'appelle très bien, mais il ne semble jamais collec t l'une des données. J'ai lu quelque part que cela pourrait avoir à faire avec l'opérateur < < de QDataStream parce que Python ne l'envoie pas exactement en morceaux comme Qt attend. J'avoue que je ne suis pas très doué avec C++ ou Qt, mais l'idée du projet est d'écrire un client pour travailler avec un serveur torsadé existant, alors que le client peut être changé, je n'ai pas le choix mais pour le faire fonctionner avec ce serveur.
Merci d'avance pour toute aide.
Merci, j'ai lu beaucoup à ce sujet et probablement besoin de lire plus. Comme je l'ai dit, c'est ma première tentative, et même si cela ne s'est pas avéré être le problème, je le garderai à l'esprit. – jsullivan88