Hello,
Je fais suite à mon fil précédent, mais pour plus de clarté j'ai préféré créer un autre fil, je n'arrive pas à modifier le titre du précédent.
Précédent fil ici : http://codelab.fr/4245
Alors après quelques recherches sur les bonnes manières de créer des connections TCP sur un réseau, il s'avère qu'il est fortement recommandé, voire nécessaire, d'avoir recours des Threads à part pour gérer proprement cet aspect.
Il y a l'addon ofxNetwork pour les méthodes mais il faut apparemment les inclure dans des Threads pour ne pas rendre l'application bloquante.
Bien que cela semble nécessaire, il y a très peu de documentation sur ce sujet et l'exemple fourni dans oF est on ne peu plus succinct et je n'arrive pas à adapter ce fonctionnement à mon projet.
J'aimerai simplement pouvoir gérer proprement des connexions réseau, c'est à dire tester la connexion, m'assurer que l'adresse IP est valide etc.. avant d'envoyer des messages et afficher des messages d'erreur si besoin.
y a-t-il des masters du threading et/ou de la connection réseau dans la salle ?
thanks
Dernière modification par Marty (2013-05-08 23:21:44)
Hors ligne
Voila ce que j'ai pour le moment :
string ofxPJCtrl::sendQueryCommand(string command) { string msgRx; if(!connected) { pjClient.setVerbose(true); /****** CETTE LIGNE TESTE LA CONNEXION, C'EST LA SOURCE DU PROBLEME ******/ if(!pjClient.setup(IPAddress, PJLINK_PORT)) {return "CONNECTION ERROR !";} /**********************************************************************/ cout << "connection established: " << IPAddress << ":" << PJLINK_PORT << endl; while (msgRx.length() < 8) { msgRx = pjClient.receiveRaw(); if(msgRx.length() > 6) { cout<< msgRx << endl; } } } cout << "sending command: "<< command << endl; pjClient.sendRaw(command); msgRx = ""; while (msgRx.length() < 8) { msgRx = pjClient.receiveRaw(); cout<< msgRx << endl; } pjClient.close(); connected = false; return msgRx; }
Hors ligne
Pages: 1