Annonce

>>> Bienvenue sur codelab! >>> Première visite ? >>> quelques mots sur codelab //// une carte des membres//// (apéros) codelab


#1 2013-05-08 23:21:11 Créer un Thread pour connexion TCP

Marty
membre
Date d'inscription: 2012-04-27
Messages: 143

Créer un Thread pour connexion TCP



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

 

#2 2013-05-09 10:07:29 Re : Créer un Thread pour connexion TCP

Marty
membre
Date d'inscription: 2012-04-27
Messages: 143

Re: Créer un Thread pour connexion TCP



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

 

fil rss de cette discussion : rss

Pied de page des forums

Powered by FluxBB

codelab, graphisme & code : emoc / 2008-2024