La plus simple QT Serveur TCP
De quoi aurais-je besoin de recevoir des données à partir d'un client?
QTcpServer Server;
if(!Server.listen("127.0.0.1", 9000)) {
return;
}
connect(Server, SIGNAL(newConnection()), this, SLOT(ReceiveData()));
Est-ce correct? De quoi ai-je besoin d'en ReceiveData? Ai-je vraiment besoin d'une autre fonction pour recevoir les données? Je voudrais l'enregistrer dans un QByteArray
Grâce
OriginalL'auteur | 2011-10-28
Vous devez vous connecter pour publier un commentaire.
Que cela n'a pas été répondu, voici un exemple de base.
Dans votre ReceiveData logement, vous devez accepter la connexion du serveur.
Dans Qt QTcpServer cela se fait en appelant nextPendingConnection().
De sorte que le QTcpServer de newConnection fente d'appeler votre ReceiveData logement.
Dans votre receivedata logement, vous pouvez faire quelque chose comme:
Note: Ceci est un blocage exemple, la waitForReadyRead pour accrocher le fil jusqu'à 5000 millisecondes.
Faire un non bloquant exemple, vous devez connecter un autre emplacement pour le nouveau socket du signal readyread.
OriginalL'auteur Jack Culhane
Avez-vous vu cet exemple:
http://doc.qt.io/qt-5/qtnetwork-fortuneserver-server-cpp.html
PS:
Oui, vous avez besoin d'au moins une fonction de rappel:
1) accepter de nouvelles connexions
2) Envoyer et Recevoir des données sur la connexion(s)
Ce que vous voulez, c'est simpliste, et ne peut pas être fait sans blocage. Qt est conçu non bloquantes sockets et aura besoin d'un accepter et de recevoir un rappel.
OriginalL'auteur paulsm4