Bonjour,
Je travaille sur une appli qui commande des appareils par tcp/ip. Pour tester l'appli, ces appareils peuvent être remplacés par un logiciel de simulation (server tcp) qui reçoit le message et renvoie une réponse adaptée.
Je cherche à rendre le code de communication tcp/ip du client portable et du coup je recode les méthodes basées sur du code spécifique Linux en Qt via les QtcpSocket.
Le code basé sur Linux fonctionne correctement lorsqu'on est connecté à l'appareil et au simulateur.
J'ai fait un code de test basé sur Qt qui envoie une succession de commande :
- declaration des sockets (deux sur le meme serveur mais qui ont des ports differents) avec un waitForConnected => l'appareil détecte que je suis connecté. A ce niveau, l'état de mes sockets est connecté, valide etc... Tout a l'air correct.
- write sur une socket avec l'utilisation de waitForBytesWritten. Le nombre d'octets retourné est correct mais l'appareil ne semble pas réagir.
- lecture de la réponse sur une autre socket avec waitForReadyToRead => rien ne se passe, je lis une chaine vide (normalement le retour est quasi instantané).
Ce code de test fonctionne bien quand je suis connecté au simulateur qui lui est codé en Qt.
Y aurait il des particularités pour le transfert de messages vers du hardware ? Pour l'instant je fais juste du write avec un QByteArray en paramètre.
Merci pour votre aide.
Partager