Bonjour,

J'ai écrit un CGI en C++. Ce dernier crée une socket client qui va se connecter à un serveur (programme écrit en C++). Lorsque je lance le cgi à partir d'un browser, celui-ci est exécuté en continue afin de recevoir en continue des données depuis le serveur. Lorsque le cgi reçoit une donnée, j'appelle une fonction javascript nommée "changeIcon":
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
cout << "Données reçue:" << data << endl;
cout << "<script language='Javascript'>" << endl;
cout << "changeIcon(' " << data << " ');" << endl;
cout << "</script>" << endl;
Voici ma fonction javascript:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
function changeIcon(iconName)
{
	var object = document.getElementById("icon");
	object.innerHTML = "<img src='images/" + iconName  + "'>";
};
Le CGI est exécuté sur Apache. Si je lance le cgi en local (sur le pc où est situé Apache et le cgi), ça marche nickel.
Par contre, sur un autre pc du réseau le fonctionnement est différent, ce qui ne m'arrange pas.

Je m'explique. Lorsque le CGI reçoit une donnée la ligne de code
Code : Sélectionner tout - Visualiser dans une fenêtre à part
cout << "Données reçue:" << data << endl;
est reçue au niveau du navigateur ; Mais la suite
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
cout << "<script language='Javascript'>" << endl;
cout << "fctJavascript(' " << data << " ');" << endl;
cout << "</script>" << endl;
n'est pas reçue , donc pas exécutée

Avez-vous une idée sur ce comportement svp ?
Est-il possible qu'il y a une histoire de vider le tampon associé au flot "cout".
Cependant cela doit ce faire en utilisant endl: Car J'aimerais également préciser que si le CGI reçoit une 2ème donnée, la fonction javascript associé à la 1ère donnée est exécuté. et ainsi de suite.
Enfaite j'ai l'impression que le navigateur ne reçoit (par Apache) le bout de code javascript seulement après la réception d'un autre message.

Peut-être que l'utilisation des cgi n'est pas adaptée pour ce que je veux faire: on m'a dit qu' il est impératif de ne pas produire des application CGI qui ne se terminent jamais, car le nombre de processus qu'un serveur (Apache) peut produire est limité.

J'attends vos avis. Thx in advance.