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