Annonce

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

17 mai 2019 : accident de la base de données : plus d'infos

#1 2013-05-19 02:20:16 avis sur ce code : connexion réseau

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

avis sur ce code : connexion réseau



Salut,

J'essaie depuis quelques jours de me pencher sur les connexions réseau en TCP.
J'aimerais l'avis de développeurs afin de savoir si le code ci-dessous vous parait correct. Le but étant de tester la connexion (s'assurer qu'une adresse est valide sur le réseau) avant d'entreprendre quoique ce soit.

J'utilise ofxNetwork sur oF 0.7.4 mais j'essaie de palier le problème de freeze de l'application quand je demande un tcpClient.setup(IP, PORT) sur une adresse qui n'existe pas.

De même j'ai essayé de faire comme certains le préconisent un system("ping adresse") mais j'ai le même problème.

Du coup j'ai fouillé dans le code de l'addon ofxNetwork et suis tombé sur la classe oxfTCPManager et une de ses méthodes : CheckHost(IP).

J'avoue que cela est un peu de la bidouille et de la débrouille. J'aimerais donc avoir un avis éclairé.

Mon code :

void testApp::testConnection()
{
	string msgRx;
	bool connected = false;
	
	if(!connected) {
		string ipAddr = "192.168.5.225";
		pjManager.Create();
		if (!pjManager.CheckHost((char *)ipAddr.c_str())) 
                       {
                                cout << "Host doesn't exist" << endl;
                       }
		else 
                       {
			bool connected = pjClient.setup("192.168.5.225", 4352);
			if(pjClient.isConnected()) {
				cout << "connection established: " + ipAddr + "on port 4352" << endl;
				while (msgRx.length() < 8)
				{
					msgRx = pjClient.receiveRaw();
					if(msgRx.length() > 6)
					{
						cout<< msgRx << endl;
					}
				}
				cout << "sending command: %1POWR ?" << endl;
				string command = "%1POWR ?\r";
				pjClient.sendRaw(command);
				msgRx = "";
				for(int i = 0; i<200000000 ; i++){} // Empty loop for pause
				while (msgRx.length() < 8)
				{
					msgRx = pjClient.receiveRaw();
					cout<< msgRx << endl;
				}
			}
			else {
				cout << "Problem connecting to " + ipAddr + " on port 4352" << endl;
			}
		}
	}
	
	pjClient.close();
}

Merci à vous

Dernière modification par Marty (2013-05-19 02:21:36)

Hors ligne

 

fil rss de cette discussion : rss

Pied de page des forums

Powered by FluxBB

codelab, graphisme & code : emoc / 2008-2020