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